我有一个对象代表我网站上的用户帐户,以及一个单独的对象,它充当主帐户对象的附件,并扩展了用户在网站上运行某些主要功能的能力 - 一个功能齐全的店面。 / 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()
}
答案 0 :(得分:2)
这是一种常见的重构。您唯一需要注意的是,当您将一个对象与另一个对象关联时,您将需要管理“后退指针”,例如在为帐户提取商店时,您必须确保商店也会获得指向该帐户的后退指针,反之亦然。
进一步阅读: