该OOP对象如何从另一个类访问其顺序

时间:2011-12-25 09:33:27

标签: php oop class

我有几个Item类型的对象。这些项目是有序的,但它们的排序可以改变,所以为了简化这个排序,我不想给每个项目提供自己的order属性。我认为最好让List存储每个Item,因为它可能会被创建到一个数组中,并且项目的顺序会以这种方式决定。 (首先,这种方法的设计问题是什么?)

我的问题是如何通过联系项目本身来获取项目的顺序?理想情况下,我想做这样的事情

$item = new Item();
$item->getOrder();

该项目必须依赖于List来获取其订单,那么它应该如何做呢?

我还没有完全决定将项目存储在List中的数组中。任何其他让事情变得简单的结构都很好。我试图以一种良好的OOP方式做到这一点。

1 个答案:

答案 0 :(得分:2)

如果项目必须知道列表,请将列表添加为项目的属性,例如parentList

如果您想要询问列表中某个特定项目的顺序,请在列表中创建一个方法。

function orderOf($item){...}

所以现在在你的

里面
$item->getOrder() 

只需查询您的列表

$list = $item->parentList();
return $list->orderOf($this);