设计模式之Adapter模式

同Facade模式一样,Adapter模式也是一种包装(wrapper),是很常用的模式,不过他们之间还是有微妙差别。

Adapter的意图可以这样表述:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原来由于接口不兼容而不能一起工作的类可以一起工作。

采用Adapter模式是源于这样的问题:原有系统的数据和行为都正确,但接口不符。通常用于必须从抽象类派生时。其实现方式是将原有类包含在另一个类中(组合方式,称为对象Adapter模式; 当然也可以采用私有继承方式,称为类Adapter方式),让包含类与需要的接口匹配,调用被包含类的方法。 

Adapter和Facade模式的一个共同点是都存在既有的类。有几点区别:Facade模式不必按某个接口设计,而Adapter模式必须按接口所需设计;Facade模式对象不需要多态行为,而Adapter模式可能需要;Facade模式提供更简单的接口,而Adapter模式并不一定如此。

Adapter模式实际上有任务转接的意思。

最典型和常见的Adapter模式当然就是大家熟悉的STL适配器了,呵呵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章