阅读量:2
学而时习之,温故而知新。
敌人出招(使用场景)
说是自己的程序对接第三方的库,但是自己的代码的接口设计完毕了,如何对接上?
你出招
适配器模式就是为此而生的——我觉得应该是该解决方法被命名为了适配器模式。毕竟这种对接问题也是通用的问题。类似搞个中间层,这里是中间类或者叫转换类。
类模式和对象模式
适配器模式实现方式分为类模式和对象模式,啥呀,其实就是继承方式和组合方式,这样更容易理解。
设计模式原则上有个建议,说组合优先于继承。所以大多都是用组合来实现适配器模式。
日常生活举例
今天早上拿了袋小番茄,袋子上没有勾子,要把它挂到墙上的钩子上,只能找一个带钩子的袋子把它套进去,然后挂上去。
目标类接口是钩子——墙上挂钩,源类没有该接口,那怎么搞呢?创建一个适配器类——带钩子的袋子——把源类包起来(包装下wrapper)。这不就是适配器模式。
当然比较常见的日常例子不要太多,比如在晾衣架上晒衣服,衣服没有钩子,怎么挂到衣架上?搞个衣裳架把衣服挂到衣架上——但是这个衣服和衣裳架感觉又有点像装饰器,算了,这几个模式本来不好区分,见仁见智。