Adapter简单的比喻就是把二相插座装换成三相插座,也就是接口转换器。意图使原来不
兼容的接口可以和其他接口配合使用。
类图:
自己写的简单代码实例:
程序输出:from shape draw
from TestView Request
显然Adapter作为新的接口,具有了TestView的属性和方法。保留了接口的
一致性。在STL中也有函数适配器这个概念:有的算法需要一个一元函数作参数,就
可以用一个适配器把一个二元函数和一个数值,绑在一起作为一个一元函数传给算法。
例如:
find_if(coll.begin(), coll.end(), bind2nd(greater<int>(), 42));
这句话就是找coll中第一个大于42的元素。
greater<int>(),其实就是">"号,是一个2元函数
bind2nd的两个参数,要求一个是2元函数,一个是数值,结果是一个1元函数。
bind2nd就是个函数适配器。
好了,关于适配器模式,欢迎拍砖~~