我最近遇到了这个问题,我只是想知道我的答案是否正确,如果不正确,我哪里做错了。
我的任务是
A类和B类的签名是不兼容的。类C要用设计模式适配器连接A和B。
让C继承A和B的优点是什么?解释一下让B继承A,C继承B是否合理。
我的答案是
让C继承A和B的好处是可以解决签名冲突,而A和B仍然可以单独实例化。
如果让B从A继承,C从B继承,就没有意义了,因为如果把之前造成冲突的功能从A继承到C,B就要接管A的实现,B的功能就会发生变化,这就不是设计模式适配器的目的了。
谢谢:-)
的 适配器模式 (就像所有其他GoF设计模式一样)有一个完善的文档结构。有两种方法来实现这个模式。
Adapter
类包装的 Adaptee
. Adapter
类继承自 Adaptee
.考虑到这一点,我们来看一下所提问题的关键部分 。
请解释让B继承A,C继承B是否合理。
基于以下原因,这样做是没有意义的。
C
既不是 对象适配器 也不是 类适配器)A
是 Android
和类 B
是 Blackberry
. 如果 B
继承 A
它违反了 IS-A 关系,因为 Android
不是 Blackberry
. 点 2. 以上正是我们为什么需要 适配器 模式。我们创建一个 BlackberryToAndroidAdapter
类,继承自 Android
和 Blackberry
这不过是一个例子。类适配器 模式,而在本题中,这是该类的 C
.