如何设计具有很多类型的模型对象

时间:2014-07-23 11:38:48

标签: design-patterns model-view-controller

目前我正在研究基于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

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

1 个答案:

答案 0 :(得分:1)

我不确定这是否是一个答案,但我们走了......

事实上,你有25个Program类的子类型,应该是一个不好的方法的明确指示。

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

我认为每个“属性”实际上构成了一些功能,因为在类中只有public个变量就意味着你有一个泄漏的封装(糟糕的做法)。

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

  

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

  

注2:模型不是一个类,而是一个包含业务逻辑的应用程序层......你称之为“模型”的实际上是domain objects