我有一个很长的课程,我无法分开,因为我需要一个数据库表中的所有字段(Google AppEngine + Objectify)。我已经尽可能使用嵌入式类。该类主要由getter和setter以及它们背后的逻辑组成。
为了获得功能块,我决定使用重复继承。现在它看起来像这样:
MyStoredModel extends
AbstractSettingsModel extends
AbstractHierarchyModel
(处理父/子对象)extends
AbstractInformationModel
(包含标题,说明,......)extends
AbstractModel
更容易看到每个班级正在做什么,我也说它更容易测试。缺点是“继承链”。
这被认为是不良行为吗?有哪些更好的方法让班级更小?
答案 0 :(得分:4)
我会考虑使用这些成分。因此,模型由设置,层次结构,信息对象组成。
这意味着您必须在顶级对象上包含所有setter / getter,然后将其委托给每个组件类中的相应setter / getter,但至少可以隔离它们的所有处理在没有继承层次结构复杂性的单独类中。而且这也意味着那些组件类现在可以自由地继承任何他们喜欢的东西。
答案 1 :(得分:0)
只要从逻辑角度来看继承是有意义的,我很确定它应该是这样的方式。
但是构图也是一个好主意。