这个OOP对象如何从另一个类访问它的顺序?


How can this OOP object access its order from another class

我有几个Item类型的对象。这些项是有序的,但是它们的顺序可以改变,所以为了使排序更简单,我不想给每个项赋予自己的order属性。我认为最好是让List在创建成数组时存储每个Item, Item的顺序是这样决定的。(首先,这种方法有什么设计问题吗?)

我的问题是如何通过联系项目本身来获得项目的订单?理想情况下,我想这样做

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

项目必须依赖于List来获得它的顺序,那么它应该如何做呢?

我不完全决定在列表中存储数组中的项。任何其他让事情变得更简单的结构都是好的。

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

如果你想查询List中某项的顺序,在List中创建一个方法。

function orderOf($item){...}

那么现在在

里面
$item->getOrder() 

简单查询列表

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