【原创】设计模式面对面之适配器模式
适配器模式
类图:
图1
图2
常用的实现方式:
适配对象
public class AdapterTarget { public AdapterTarget(){ } public void Operation(){ Console.WriteLine("原有功能不变"); } }//end AdapterTarget
适配器
public class Adapter : AdapterTarget { public Adapter(){ } public void OperationNew(){ Console.WriteLine("新增功能"); } }//end Adapter
调用
static void Main(string[] args) { var adapter = new Adapter.Adapter(); adapter.Operation(); adapter.OperationNew(); Console.ReadLine(); } }
图中没做抽象,比较简单,图1通过继承是最简单的实现方式,如果适配目标较多,可以使用图2组合的方式去做。
使用场景:
适配器目的就是为了不改变原有功能,扩展新功能或者更新原有功能。
优点
1.典型的遵守里氏替换原则
2.增加系统稳定性
缺点
1.容易产生冗余代码
2.适配器随着适配目标的增加而增加,违背了开闭原则
适配器要根据业务需求去拆分成多个适配器,不要做万能的适配器。