【原创】设计模式面对面之适配器模式

适配器模式

类图:

图1

图2

常用的实现方式:

适配对象

public class AdapterTarget {

        public AdapterTarget(){

        }

        public void Operation(){
            Console.WriteLine("原有功能不变");
        }

    }//end AdapterTarget
View Code

适配器

public class Adapter : AdapterTarget {

        public Adapter(){

        }

        public void OperationNew(){
            Console.WriteLine("新增功能");
        }

    }//end Adapter
View Code

调用

 static void Main(string[] args)
        {

            var adapter = new Adapter.Adapter();

            adapter.Operation();
            adapter.OperationNew();

            Console.ReadLine();

        }
    }
View Code

图中没做抽象,比较简单,图1通过继承是最简单的实现方式,如果适配目标较多,可以使用图2组合的方式去做。

使用场景:

 适配器目的就是为了不改变原有功能,扩展新功能或者更新原有功能。

优点

1.典型的遵守里氏替换原则

2.增加系统稳定性

缺点

1.容易产生冗余代码

2.适配器随着适配目标的增加而增加,违背了开闭原则

适配器要根据业务需求去拆分成多个适配器,不要做万能的适配器。

 

posted @ 2017-11-14 14:31  杜俊强  阅读(114)  评论(0编辑  收藏  举报