我構建具有類似的數據結構枚舉值如下:建造這個物體的更好的模式?
enum MetaType {
HUMAN(
new MetaTypeAttribute(AttributeType.BODY, 1, 6),
new MetaTypeAttribute(AttributeType.AGILITY, 1, 6),
new MetaTypeAttribute(AttributeType.REACTION, 1, 6)
),
ORK(
new MetaTypeAttribute(AttributeType.BODY, 4, 9),
new MetaTypeAttribute(AttributeType.AGILITY, 1, 6),
new MetaTypeAttribute(AttributeType.REACTION, 1, 6)
);
MetaType(MetaTypeAttribute body, MetaTypeAttribute agility, MetaTypeAttribute reaction) {
}
}
因此,有元類型的枚舉;每個MetaType指定一組固定的MetaTypeAttributes,它由該屬性的最小值和最大值組成。
我討厭這種語法。它太長了,很醜,並且不會阻止我傳入錯誤的AttributeType(AttributeType應該與MetaType構造函數的參數順序相匹配; AttributeType.BODY> body等)。我想要的是一個更好的模式,以確保用這個確切的方案構建一個對象。
此代碼被縮寫。實際上有9個AttributeTypes。
任何改進建議?
謝謝!我最終使用這種模式。嚴格地說,當我這樣做時,我不需要MetaTypeAttribute對象;我只是存儲從構造器參數中填充的Map。 –
RMorrisey
2010-09-04 08:53:42