GoF中定义:
“将一个类的接口转换成为客户端期待的类接口。适配器模式让原本接口不兼容的类能一起合作。”
适配器模式与装饰模式有一定的相似之处
两者都是在着手解决C#不能多继承的问题
当出现一个不符合客户端接口的情况时
再不想破坏接口的前提下
就必须设计一个适配器来进行转换
将原本不符合的接口,转换到客户端预期的接口上
public abstract class Target { public abstract void Request(); } public class Adaptee { public Adaptee() { } public void SpecificRequest() { Debug.Log("调用了Adaptee.SpecificRequest"); } } public class Adapter : Target { private Adaptee m_Adaptee = new Adaptee(); public Adapter() { } public override void Request() { m_Adaptee.SpecificRequest(); } }
//测试类 public class TestAdapter{ void UnitTest() { Target theTarget = new Adapter(); theTarget.Request(); } }
其实就是在不能多继承的情况下
一种采取继承方式
其他的持有引用
然后在重新组合
文章整理自书籍《设计模式与游戏完美开发》 菜升达 著