共有两类适配器模式:
对象适配器模式
-- 在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种状况下,适配器调用被包裹对象的物理实体。
类适配器模式
-- 这种适配器模式下,适配器继承自已实现的类(通常多重继承)。
将一个类的接口转换成客户但愿的另一个接口。
Adapter模式使得本来因为接口不
兼容而不能一块儿工做的那些类能够一块儿工做。——
Gang of Four
客户:须要调用咱们的代码的对象。
Adapter模式的宗旨:保留现有类所提供的服务,向客户提供接口,以知足客户的指望。
(1)类适配器:
当客户在接口中定义了他指望的行为时,咱们就能够应用适配器模式,提供一个实现该接口的类,而且扩展已有的类,经过建立子类来实现适配。
下面是类适配器的UML图:
(2)对象适配器:
对象适配器”经过组合除了知足“用户期待接口”还下降了代码间的不良耦合。在工做中推荐使用“对象适配”。下面是对象适配器的UML图:

实例:spa
public interface IUserInfo
{
string getUserName { get; }
}
public class Adapter : IUserInfo
{
Adaptee adt = new Adaptee();
public string getUserName
{
get
{
return adt.getName();
}
}
}
public class Adaptee
{
public string getName()
{
return "new name";
}
}