我有多个从基类继承的对象,我正在尝试决定用户应该如何编辑它们。有许多常见字段和一些仅适用于每个子类的字段。是否有设计模式来解决这个问题?
我想我可以为每个网页创建一个网页,或者我可以拥有一个网页并显示/隐藏子类的字段。我可以想到每个人的利弊。很高兴知道是否有一种标准的处理方式。
答案 0 :(得分:0)
我在动态标签方面运气不错。这个想法是所有常见字段都在Main选项卡上。依赖于特定类的任何内容都会出现在名称相似的选项卡上。
在运行时,我决定它是什么对象并显示相应的标签。
答案 1 :(得分:0)
您可以使用并行类层次结构(本身不是设计模式)。使用这个想法,您将创建一个基本的代码隐藏类来满足您的基类的属性,然后创建从这个类派生的类,以支持必要的UI来处理派生类的其他属性。
并行类库可能会导致问题,例如如果你创建一个新的派生类,那么你还必须创建一个新的派生UI类等,但是如果派生的UI类很简单,那么这可能不会成为太大的问题。
修改:
如果这是您关闭的路径,您可能希望创建用户控件的层次结构而不是页面,然后在运行时将适当的用户控件添加到页面中。
答案 2 :(得分:0)
类层次结构的相反方法是组合学校。这个问题的组合方法可以让你为你的类的基础数据创建一个基本的显示控件(通常在组合方案中保存在核心对象中)和专用数据的专用控件(将保存在它自己独立的对象)。
这有一些优点和一些缺点。最重要的优点是你有一个无限可扩展的系统,用于在类树上一直显示常见的数据集类型,你可以获得正常的组合风格强度 - 改变类的定义往往会分解为较小的编辑,更独立的单位。最重要的缺点可能是你最终不得不将工作分解成许多子单元,而不是只有一个“优雅”(优雅通常是类树的幻觉)类的抽象及其视觉表示/序列化。
答案 3 :(得分:0)
查看Flyweight模式。