什么是双向适配器模式

时间:2011-10-14 02:07:35

标签: design-patterns

在GoF设计模式(Eric Gamma等人)一书中,提到了用于透明的双向适配器模式。当2个不同的客户端想要以不同方式查看同一对象时,它们非常有用有人可以给出相同的C ++示例,并且可以使用它的实际场景吗?

3 个答案:

答案 0 :(得分:4)

双向适配器是实现Target和Adaptee两个接口的适配器。适应对象可以在处理Target类的新系统中用作Target,或者在处理Adaptee类的其他系统中用作Adaptee。进一步思考这个思路,我们可以让适配器实现n个接口,适应n个系统。双向适配器和n路适配器很难在不支持多继承的系统中实现。如果适配器必须扩展Target类,则它不能扩展另一个类,如Adaptee,因此Adaptee应该是一个接口,并且所有调用都应该从适配器委托给Adaptee对象。

Adapter Design Pattern

来源:http://www.oodesign.com/adapter-pattern.html

答案 1 :(得分:3)

我发现给出here的解释非常好。这是一个C#示例,但解释清楚,示例可以很容易地转换为C ++代码。这个例子也很详细。

答案 2 :(得分:0)

正如Go4所解释的那样(对我来说是第143页),它是Adapter对多重继承的扩展。适配器类扩展了两个,而不是扩展一个接口类型。