设计模式—适配器

     用意:

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

例子:

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

设计模式—适配器

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

 设计模式—适配器

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

        }

    }

}

 

 

 

你可能感兴趣的:(设计模式)