一个 Adaptee class 继承另一个的适配器设计模式?

Adapter Design Pattern with one Adaptee class inheriting the other?

我最近遇到了这个问题,我只是想知道我的回答是否正确,如果不正确,我在哪里犯了错误。

我的任务:

类 A 和 B 的签名不兼容。 Class C是用Design Pattern Adapter连接A和B。

让C继承A和B有什么好处?解释让 B 继承 A 和 C 继承 B 是否有意义。

我的回答:

让C继承A和B的好处是可以解决签名冲突,同时A和B仍然可以单独实例化。

B继承A,C继承B是没有意义的,因为如果之前引起冲突的功能是从A继承给C的,B必须接管A的实现,功能B 的将被更改,这不是设计模式适配器的目的。

谢谢 :-)

适配器模式(与所有其他 GoF 设计模式一样)具有详细记录的结构。有两种方法可以实现这个模式:

  1. 对象适配器:Adapter class 包装 Adaptee
  2. Class 适配器:Adapter class 继承自 Adaptee.

考虑到这一点,让我们看看所问问题的关键部分:

Explain whether it would make sense to have B inherit from A and C inherit from B.

这样做没有意义,原因如下:

  1. 如果要实现适配器模式,这不能称为 适配器模式 本身(因为 C 既不是 对象 Aadapter 也不是 Class Adapter)
  2. 适配器模式与否,它违反了 IS-A 关系。假设classAAndroid,classBBlackberry。如果 B 继承 A,它违反了 IS-A 关系,因为 Android 不是 Blackberry
上面的

2.正是我们需要Adapter模式的原因。我们创建一个继承自 AndroidBlackberryBlackberryToAndroidAdapter class 这不过是 Class 适配器的一个例子 模式,在这个问题的上下文中,这是 class C.