我无法正确建模可以使用模板的相关对象。这不是家庭作业,而是大学中一个小项目的一部分。
在此应用程序中,用户可以添加多个元素,这些元素可以是被动的也可以是主动的。每个具体元素都有不同的属性,这些属性必须由用户设置。见图1:
由于用户将创建许多元素,我们希望每种类型的元素都有模板,因此一些属性会自动填充。见图2:
在我看来,这是一个糟糕的设计。例如,要获取PassiveElementA对象的所有可能模板,必须有一个仅包含PassiveElementATemplate对象的列表/集合。
Element的每个子类都必须有一个单独的列表。因此,如果您想添加一个新的PassiveElement-child,您还必须编辑包含所有这些单独列表的类。
我无法找到解决这个问题的好方法。由于具体类(即PassiveElementA,...,PassiveElementZ)具有许多不同的属性,因此我知道的许多设计模式都不起作用。
提前感谢任何提示,并抱歉我的英语不好。
答案 0 :(得分:1)
如果我理解正确并且通过模板你的意思是对象,它会有复杂的结构,因此你有许多现成的对象,可以根据需要复制,你可以考虑使用Prototype设计模式。否则,可能是某种抽象工厂或甚至可能是依赖注入。如果您提供决定按现在的设计方式使用它的理由可能会有所帮助。