Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.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_Design Patterns - Fatal编程技术网

使用哪种设计模式-Java?

使用哪种设计模式-Java?,java,design-patterns,Java,Design Patterns,我有三个类,A,B和C,它们从D扩展而来。有一些方法是类A,B和C的常用方法,我把它们放在D中,其中有一些方法是A和B的常用方法,B和C和C和A的常用方法。我可以添加另一层继承,即创建另一个类e(为A和B放置公共方法)、D(为B和C放置公共方法)和F(为C和A放置公共方法)但是有没有与此相关的设计模式?您可以尝试使用组合而不是继承。只需创建其他类,让A/B/C引用这些其他类的对象即可。这样,您就更灵活了。为常见行为创建小型接口,并使需要共享行为的类实现多个接口。然后,正如建议的那样,使用组合创建

我有三个类,
A
B
C
,它们从
D
扩展而来。有一些方法是类
A
B
C
的常用方法,我把它们放在
D
中,其中有一些方法是
A
B
的常用方法,
B
C
C
A
的常用方法。我可以添加另一层继承,即创建另一个类
e
(为
A
B
放置公共方法)、
D
(为
B
C
放置公共方法)和
F
(为
C
A
放置公共方法)但是有没有与此相关的设计模式?

您可以尝试使用组合而不是继承。只需创建其他类,让A/B/C引用这些其他类的对象即可。这样,您就更灵活了。

为常见行为创建小型接口,并使需要共享行为的类实现多个接口。然后,正如建议的那样,使用组合创建类来处理各种功能,然后组合相关类的实例来处理它们的接口定义的功能

看到到处都是A、B、C、D、E、B、C、D,我的眼睛很痛,试着更好地演示这个问题。黄金法则(“和模式”)是:喜欢构图而不是继承。是的。谢谢,当然可以。非常感谢。