zoukankan      html  css  js  c++  java
  • 设计模式—适配器

         用意:

    将关联性不是很大的类进行关联,可以通过适配器进行关联

    例子:

    我们前面也介绍过日志记录的方法

    这是我们原来系统中有的方法,但是我们做到一半,需要引进一个新的日志记录法

     

    这个日志记录方法是WriteLog,与我们原来的Write方法有很大的差别,因此我们需要给他套个Wrapper,也就跟COM一样进行包装(RCM)

    包装方式有两种:继承和对象组合

    继承:

    继承是将每种日志记录方式都继承新的日志记录类,并实现了老的ILog接口,在接口Write方法中调用父类的WriteLog方法

    namespace 大话设计模式
    {
        class DatabaseAdapter : DatabaseLog1, ILog
        {
            public void Write()
            {
              this.WriteLog();
            }
        }
    }

    这样的坏处是所有日志记录方式都需要记录,这样耦合性太高

    对象组合

    将日志记录器作为属性,放在适配器中,这样只需要一个类就可以了

    namespace 大话设计模式
    {
        public class LogAdapter : ILog
        {
            private LogAdaptee logAdaptee;
    
            public LogAdapter(LogAdaptee logAdapter)
            {
                this.logAdaptee = logAdapter;
            }
    
            public void Write()
            {
                logAdaptee.WriteLog();
            }
        }
    }

     

     

  • 相关阅读:
    MVC MVP MVVM三者的区别
    有状态组件 和 无状态组件的区别
    判断数据类型的几种方法
    bind的使用
    新时代web组件开发标准
    node.js上传文件
    封装的组件
    mysql数据库比较,各数据库不同之处
    node.js中使用Redis
    centos下安装nodejs的三种种方式
  • 原文地址:https://www.cnblogs.com/cainiaoguoshi/p/3455226.html
Copyright © 2011-2022 走看看