适配器模式
设计模式有个重要的格言:组合优先于继承。一般来说组合要优先于继承,因为参与者之间的绑定更加宽松,在重用、结构和修改等方面有很多优点,这点与继承不同,继承具体类或者所继承的类中包含已经实现的方法时,存在一种紧密绑定的缺点。
适用场景
适配器在电气领域非常常见,两项转三项插座,usb转换头等等。适配器就是为了解决兼容问题出现的,你不必重新开发一套专用的功能。而是只要简单改造,就可以继续适用。比如web上常见的UI模块等等。
由于类适配器包含双重继承,因此往往会继承一个类,并实现一个接口,来实现。也可以使用trait.
UML类图
图3-2 使用组合的适配器类图
代码示例: https://github.com/lemon2015/design-mode/tree/master/Adapter