设计模式一分钟之Adapter


适用场景:

将两个不相关的类组合在一起使用,需要用到Adapter模式。一个是Adaptee,一个是Adapter。
实际上,两个不相关的类想要组合在一起使用,
可以修改类的接口, 但是,如果我们不想修改接口,或者根本没有源代码,就需要使用Adapter模式。

实现方法:

有两种方法,组合composition 和 继承inheritance。

实现举例:

1. 有两个类 Square和Round,如果想要同时使用两个类,就可以新创建一个Adapter类:

设计模式一分钟之Adapter

上图可见,DrawAdapter继承Round, 同时在DrawAdapter类里面定义了变量square,和构造函数。通过初始化这个Adapter对象,就可以同时画圆和方形,因为DrawAdapter同时还重载了drawRound方法。

2. 如果想要两边继承:

设计模式一分钟之Adapter

上图说明,定义两个接口IRound 和ISquare,这样DrawAdapter就可以通过同时实现两个接口来将两个类组合起来使用。
同时在Adapter类里面定义两个构造函数,一个是Square,一个是Round。

----------------

作者微信公众号: 小强聊架构

设计模式一分钟之Adapter