是否可以根据装载顺序允许对象相互存储?

时间:2011-09-26 06:35:38

标签: php oop

我有一个对象代表我网站上的用户帐户,以及一个单独的对象,它充当主帐户对象的附件,并扩展了用户在网站上运行某些主要功能的能力 - 一个功能齐全的店面。 / p>

我一直代表这种关系:

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()
}

到目前为止,这一直都很有效,但是当我以这种方式搜索或聚合商店时,它需要我通过Account对象来到商店。

我希望能够通过商店访问帐户对象,从而将流程减半。

是否创建了一个问题,还允许$ account对象存储在$ 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()
}

1 个答案:

答案 0 :(得分:2)

这是一种常见的重构。您唯一需要注意的是,当您将一个对象与另一个对象关联时,您将需要管理“后退指针”,例如在为帐户提取商店时,您必须确保商店也会获得指向该帐户的后退指针,反之亦然。

进一步阅读: