目前我正在研究基于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
等等,这样做的最佳做法是什么?我试图通过为包含公共属性的一组子类型提供超类来抽象它,但是很难根据公共属性对它们进行分组。是否有设计模式?
答案 0 :(得分:1)
我不确定这是否是一个答案,但我们走了......
事实上,你有25个Program
类的子类型,应该是一个不好的方法的明确指示。
您应该从组件中组合Program
实例,而不是扩展和尝试推送单个继承树中的所有内容,每个组件都提供特定的功能。
我认为每个“属性”实际上构成了一些功能,因为在类中只有public
个变量就意味着你有一个泄漏的封装(糟糕的做法)。
如果类实际上是由独立部分组成的,那么,为了与各种组件进行交互,您只需要提供一个高级接口。
注意:设计模式不是“预先打包的解决方案”,而只是在描述已经生成的代码时应该使用的名称
注2:模型不是一个类,而是一个包含业务逻辑的应用程序层......你称之为“模型”的实际上是domain objects。