我有一个很长的类(class),我无法拆分,因为我需要一个数据库表(Google AppEngine + Objectify)中的所有字段。我已经尽可能地使用嵌入式类。该类主要由 getter 和 setter 及其背后的逻辑组成。
为了获得功能 block ,我决定使用重复继承。现在看起来像这样:
MyStoredModel 扩展
AbstractSettingsModel 扩展
AbstractHierarchyModel
(处理父/子对象)extends
AbstractInformationModel
(包含标题、描述等)extends
- .....
抽象模型
更容易看到每个类(class)在做什么,而且我还说它更容易测试。缺点是“继承链”。
这被认为是不良行为吗?缩小类(class)规模的更好方法是什么?
最佳答案
我会考虑为这些使用组合。因此该模型由设置、层次结构、信息对象组成。
这确实意味着你必须在顶级对象上包含所有的 setter/getter,然后它们将委托(delegate)给每个组件类中的相应 setter/getter,但至少你可以隔离对它们的所有处理分成单独的类,而没有继承层次结构的复杂性。这也意味着这些组件类现在可以自由地从他们喜欢的任何东西继承。
关于java - 可以使用重复继承来缩小类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9377248/