适配器模式(Adapter Pattern)
意图
将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
结构图
图1 类的Adapter模式结构图
图2 对象的Adapter模式结构图
对象的Adapter模式比较灵活,我记录下自己对它的理解。
我以交际类为例。如下图
类Client中方法Contact()按照接口ContactTarget所声明的方法WriteLetter()与类ContactAdaptee通信,得到相应方法的服务。现由于某些原因,类ContactAdaptee中方法WriteLetter()更名成WriteEmail()。这时只有对应更改接口ContactTarget中的方法名,但就违背了OCP原则。有什么办法了?先看下图
方法就是增加了一“适配器”,让其应变变化。
为了清晰,将该适配器ContactAdapter的代码列出:
Class ContactAdapter:ContactTarget
{
private ContactAdaptee _contactAdaptee;
public ContactAdapter(ContactAdaptee contactAdaptee)
{
_contactAdaptee=contactAdaptee;
}
public override void WriteLetter()
{
_contactAdaptee.WriteEmail();
}
}
参考文献:
http://terrylee.cnblogs.com/archive/2006/02/18/333000.html