java - 关于优先使用组合而不是继承方法,策略模式

标签 java oop inheritance composition strategy-pattern

我在一次采访中被问到一个问题,假设有一个类 A 具有方法drawShape(),还有另一个类B 具有方法drawSquare()。现在有第三个类 C。在我的类 C 中,我想要类 A 和类 B 的这两个方法。我如何同时获取它们?

为此,我想出了以下方法: Java不支持多个Class继承:

Class.interface IA {
   void drawshape();
}

inerface IB {
   void drawsquare();
}

class A implements IA {
    ...
}

class B implements IB {
    ...
}

class C implements IA, IB {
   private A a;
   private B b;

   void drawshape() {
     a.drawshape()
   } 

   void drawsquare() {
     b. drawsquare()
   }
}

所示方法基于优先组合优于继承的原则。请让我知道这是否是正确的方法。这种模式也称为策略模式,请告知它是正确的还是我遵循的方法。如果大家对这种方法有任何更多意见,请提出建议,任何帮助将不胜感激。

最佳答案

是的,在这种情况下,组合可能是最好的方法。 在某些情况下,您可能希望从一个类继承并在其他类上使用组合。

关于java - 关于优先使用组合而不是继承方法,策略模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14983148/

相关文章:

java - Android 与 TabHost 和列表

java - 使用 spring 应用程序的 hibernate 将表情符号 unicode 字符保存在 mysql 数据库中

java - 使用简单 XML 框架反序列化不可变类

Java 枚举与迭代器与 For 循环

python - python 中的默认方法实现(__str__、__eq__、__repr__ 等)

c - 我应该从代表人力资源管理系统中员工的抽象数据类型中抽象出数据库 API 吗?

c# - 一些基本的 UML 问题

java - 验证子类构造函数中的字段的问题

c++ - 虚函数可以通过隐式类型转换实现吗?或者如何进行依赖于子类的类型转换?

Java 继承 : Restrict List to Subclass Objects