【问题标题】:how to design model objects with a lot of types如何设计具有多种类型的模型对象
【发布时间】:2014-07-23 11:38:48
【问题描述】:

目前我正在开发基于 MVC 的项目,我有一个名为 program 的模型,它有超过 25 个子类型,子类型的问题是,根据公共属性将它们分组真的很复杂,以使其更多清楚这里是一个例子:

ProgramX has attributes 1,2,4
programY has attributes 2,4,7
programZ has attributes 3,6,7
programY has attributes 1,4,8

等等,这样做的最佳做法是什么?我试图通过为一组包含公共属性的子类型创建一个超类来抽象它,但实际上很难根据公共属性对它们进行分组。有没有设计模式?

【问题讨论】:

    标签: design-patterns model-view-controller


    【解决方案1】:

    我不确定这是否会是一个答案,但我们开始吧......

    事实上,你有 25 个 Program 类的子类型,这应该清楚地表明一个不好的方法。

    您应该从组件中组合Program 实例,而不是扩展并尝试将所有内容都推送到单个继承树中,每个组件都提供特定的功能。

    我假设这些“属性”中的每一个实际上都构成了一些功能,因为仅仅在一个类中包含 public 变量就意味着你有一个泄漏的封装(不好的做法)。

    如果类实际上是由独立的部分组成,那么,要与各种组件进行交互,您只需要提供一个高级接口。

    注意:设计模式不是“预先打包的解决方案”,而只是在描述已经生成的代码时应该使用的名称

    注意2:模型不是一个类,而是一个包含业务逻辑的应用层……你所谓的“模型”实际上是domain objects

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-09
      • 2013-01-03
      • 2022-11-21
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多