zoukankan      html  css  js  c++  java
  • 【原创】设计模式面对面之适配器模式

    适配器模式

    类图:

    图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.适配器随着适配目标的增加而增加,违背了开闭原则

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

  • 相关阅读:
    运算符重载
    责任链模式
    MFC一些常见面试问题
    浅拷贝&深拷贝
    下雨的效果
    本地时间使用与倒计时
    钟表效果
    一种水纹波浪效果
    一个相册效果
    在Flash中管理鼠标右键
  • 原文地址:https://www.cnblogs.com/dujq/p/7831912.html
Copyright © 2011-2022 走看看