我最近遇到了这个问题,我很好奇我的答案是否正确,如果不正确,我在哪里弄错了。
我的任务:
类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的功能将进行更改,这不是设计模式适配器的目的。
谢谢:-)
Adapter Pattern(与所有其他GoF设计模式一样)具有详细记录的结构。有两种方法可以实现此模式:
Adapter
类包装Adaptee
。 Adapter
类继承自Adaptee
。考虑到这一点,让我们看待所问问题的关键部分:
[说明B从A和C继承是否有意义 从B继承。
由于以下原因,这样做没有意义:
C
既不是Object Aadapter也不是Class Adapter)] >A
为Android
,类别B
为Blackberry
。如果B
继承A
,则它违反IS-A关系,因为Android
不是Blackberry
。 上面的[[Point 2。Adapter模式的原因。我们创建一个继承自BlackberryToAndroidAdapter
和Android
的Blackberry
类。这不过是Class Adapter模式的一个示例,在此问题的上下文中,这是C
类。