2011-09-26 6 views
1

내 사이트의 사용자 계정을 나타내는 개체와 주 계정 개체의 첨부 파일 역할을하는 별도의 개체가 있으며 사이트의 일부 주요 기능 (전체 작동 매장)을 운영 할 수있는 능력을 확장합니다. 로드 순서에 따라 오브젝트를 서로 저장할 수 있습니까?

Class Account { 
    $id 
    $store // this is the store object 
    $email 
    $password 
    $status 

    get_store() // loads the store 
} 

Class Store { 
    $id // unique store id 
    $store_name 
    $store_info 

    post_item() 
} 

지금까지,이 좋은 일하고있다,하지만이 방법을 검색하거나 집계를 저장하는 경우, 그것을 얻기 위해 계정 개체를 통해 갈 날이 필요합니다 내가 그래서 관계를 나타내는 한

가게로.

저장소를 통해 계정 개체를 가져올 수 있으므로이 프로세스를 절반으로 줄이고 싶습니다.

또 다른 방법으로로드하려는 경우에 대비해 $ 계정 개체를 $ store 개체에 저장할 수 있도록하는 문제가 발생합니까?

다음과 같이 될 것이다이 양방향로드를 허용의 예 :

일반적인 리팩토링의
Class Account { 
    $id 
    $store // this is the store object 
    $email 
    $password 
    $status 

    get_store() // loads the store 
} 

Class Store { 
    $id 
    $account // this is the account object 
    $store_name 
    $store_info 

    get_account() // loads the account 
    post_item() 
} 

답변

2

. 당신이 알아야 할 유일한 것은 한 객체를 다른 객체와 연결할 때 "백 포인터"를 관리해야한다는 것입니다. 계정에 대한 상점을 가져올 때 저장소가 해당 계정에 대한 역 포인터를 가져 오는지 확인해야하며 반대의 경우도 마찬가지입니다.

추가 읽기 : 그것은 당신이 다시 포인터를 관리하는 데 필요한 PHP의 경우

+0

인가? 아니면 다른 언어에 대한 것입니까? 독서에 감사드립니다! – johnnietheblack

+1

@johnnie 양방향성은 A가 -A B가 -A이므로 언어에 종속되지 않음을 의미합니다. – Gordon

관련 문제