【问题标题】:Modeling related objects and their templates建模相关对象及其模板
【发布时间】:2011-02-19 04:37:48
【问题描述】:

我无法正确建模可以使用模板的相关对象。这不是家庭作业,而是大学里一个小项目的一部分。

在此应用程序中,用户可以添加多个元素,这些元素可以是被动的,也可以是主动的。每个具体元素都有不同的属性,这些属性必须由用户设置。见图1:

由于用户会创建很多元素,我们希望每种类型的元素都有模板,所以一些属性是自动填充的。见图2:

在我看来,这是一个糟糕的设计。例如,要获取 PassiveElementA-object 的所有可能模板,必须在某处有一个仅包含 PassiveElementATemplate-objects 的列表/集。

元素的每个子类都必须有一个单独的列表。因此,如果您想添加一个新的 PassiveElement-child,您还必须编辑包含所有这些单独列表的类。

我想不出解决这个问题的好方法。由于具体的类(即 PassiveElementA、...、PassiveElementZ)有很多不同的属性,所以我知道的许多设计模式都行不通。

提前感谢您的任何提示,并为我的英语不好感到抱歉。

【问题讨论】:

    标签: design-patterns modeling uml


    【解决方案1】:

    如果我理解正确并且模板是指对象,它具有复杂的构造,因此您有许多现成的对象,可以根据需要复制它们,您可以考虑使用原型设计模式。否则,可能是某种抽象工厂,甚至可能是依赖注入。如果您提供决定采用您的设计现在的样子的理由,这可能会有所帮助。

    【讨论】:

    • Prototype 模式看起来很适合这个,我会尝试一个小的实现。谢谢。
    • @Duddle 没问题,设计模式是很好的设计知识:) ...顺便说一句。如果您在原型中遇到某种空间问题,请查看享元模式,可能会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-03-29
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 2013-07-23
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多