我有对象模型,它描述了有关工作程序的说明:
>前往位置
>得到一个项目
>转到另一个位置
>选择另一个项目
> ……..
>完成工作
在我的应用程序中,我需要此说明的列表以指导工人的工作.
指令的类型非常不同,这就是为什么描述指令所需的数据可以不同的原因.要更改位置,我只需要位置ID,但是要获取商品,我还需要商品ID,数量和商品名称以及位置ID.
所以我的模型看起来像这样:
public class Instruction{
int locationId;
int itemId;
String itemName;
String quanity;
Type itemType; // can be Type.GET_ITEM, Type.CHANGE_LOCATION etc.
}
因此,我遇到的情况是我用一个模型描述了不同的实体.
我应该接受这一点,还是有消除重复的方法?
我想要的是保持将所有指令存储在列表中的能力,但要使模型更简洁.
最佳答案
这样的事情怎么样?
interface Instruction {}
class LocationInstruction implements Instruction {
int locationId;
public String toString() { return "Go to the location " + locationId; } ;
}
class ItemInstruction implements Instruction {
Item item;
public String toString() { return "Pick item " + item.toString(); } ;
}
class Item {
int itemId;
...
public String toString() { return "Item{itemId: "+itemId+"}" ;}
}
class Actions {
public List<Instruction> getInstructions();
}