Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用重复继承使类变小可以吗?_Java_Google App Engine_Class_Objectify - Fatal编程技术网

Java 使用重复继承使类变小可以吗?

Java 使用重复继承使类变小可以吗?,java,google-app-engine,class,objectify,Java,Google App Engine,Class,Objectify,我有一个很长的类,我不能拆分,因为我需要一个数据库表GoogleAppEngine+Objectify中的所有字段。我已经在尽可能地使用嵌入式类。该类主要由getter和setter以及它们背后的逻辑组成 为了得到功能块,我决定使用重复继承。现在看起来是这样的: MyStoredModel扩展 抽象设置模型扩展 抽象层次模型处理父/子对象扩展 AbstractInformationModel包含标题、描述。。。延伸 ..... 抽象模型 它更容易看到每个类都在做什么,而且我还想说它更容易测试。缺

我有一个很长的类,我不能拆分,因为我需要一个数据库表GoogleAppEngine+Objectify中的所有字段。我已经在尽可能地使用嵌入式类。该类主要由getter和setter以及它们背后的逻辑组成

为了得到功能块,我决定使用重复继承。现在看起来是这样的:

MyStoredModel扩展 抽象设置模型扩展 抽象层次模型处理父/子对象扩展 AbstractInformationModel包含标题、描述。。。延伸 ..... 抽象模型 它更容易看到每个类都在做什么,而且我还想说它更容易测试。缺点是继承链


这被认为是不好的行为吗?有什么更好的方法可以使课堂变得更小?

我会考虑用作文来完成这些。因此,该模型由设置、层次结构、信息对象组成


这确实意味着您必须在顶级对象上包含所有setter/getter,然后该对象将委托给每个组件类中的相应setter/getter,但至少您可以将它们的所有处理隔离到单独的类中,而不需要继承层次结构的复杂性。这也意味着这些组件类现在可以自由地继承它们喜欢的任何东西。

我会考虑对这些组件类使用组合。因此,该模型由设置、层次结构、信息对象组成


这确实意味着您必须在顶级对象上包含所有setter/getter,然后该对象将委托给每个组件类中的相应setter/getter,但至少您可以将它们的所有处理隔离到单独的类中,而不需要继承层次结构的复杂性。这也意味着这些组件类现在可以自由地继承任何它们喜欢的东西。

只要继承从逻辑角度讲是有意义的,我很确定这就是它应该采用的方式


但是组合也可以是一个好主意。

只要继承从逻辑的角度来看是有意义的,我很确定它应该是这样的


但是写作也是一个好主意。

授权是实现写作的一种方式。你也可以使用traits或mixin。委派是实现合成的一种方法。你也可以使用traits或mixin。