设计模式—适配器

     用意:

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

例子:

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

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

 

这个日志记录方法是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();
        }
    }
}

 

 

原文地址:https://www.cnblogs.com/cainiaoguoshi/p/3455226.html