【发布时间】:2014-10-16 21:05:39
【问题描述】:
这感觉像是一个基本的问题,但这对我来说是全新的:
我有一个 Person 和 Room 类,它们都有一个 Item 对象列表。
public class Person{
private ArrayList<Item> items;
public Person() {
items = new ArrayList<>();
}
public void addItem(){
...
}
public void removeItem(){
...
}
}
public class Room {
private ArrayList<Item> items;
public Room () {
items = new ArrayList<>();
}
public void addItem(){
...
}
public void removeItem(){
...
}
}
项目方法,例如addItem() 在 Room 类和 Person 类中都是重复的,这不是很好。我考虑过创建一个单独的 Inventory 类,其中包含项目列表和项目方法,然后每个房间和每个人都会有一个库存。
但是,如果我使用私有 Inventory 字段,我将无法从 Person 或 Room 调用 Item 方法。
在此处停止重复的最佳方法是什么?提前致谢!
【问题讨论】:
-
您可以在 Person 和 Room 类中创建适当的方法来委托给库存对象。
-
您的解决方案似乎是正确的方法。我会说您尝试实现聚合设计模式。也许这些想法会有所帮助:commons.oreilly.com/wiki/index.php/…