使用哪种模式替换元素类型有限的复合材料?

时间:2010-07-29 08:33:20

标签: oop design-patterns

我有一个对象可以由组件组成,但每个组件都有一个类型,应该是唯一的:

Class Client{
  Set<IComposite> elements  
}
interface IComposite{
  String getType();
}
class Status implements IComposite{
  String getType(){return "status"}
}
class ClientDates implements IComposite{
  String getType(){return "clientdate"}
}    

所以我想我可以封装集合,但每个元素应该是唯一的,所以只有一个状态,只有一个clentdate,但也许我可以创建一个可能是多个的新Composite类。

如何设计的想法?

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以将Dictionary作为元素的集合,其唯一ID(在您的情况下为类型)作为字典的键。 添加元素时,您可以检查元素是否存在于字典中。因此,您可以使用独特的元素保留集合。