zoukankan      html  css  js  c++  java
  • Adapter 模式(对象适配器模式)

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace Adapter
    {
        public interface INewLog
        {
            void WriteLog();
        }
        public interface IOldLog
        {
            void Write();
        }
        class FileLog:IOldLog
        {
            public void Write()
            {
                Console.WriteLine("Write log in file. ");
            }
        }
        class DataBaseLog:IOldLog
        {
            public void Write()
            {
                Console.WriteLine("Write log in database. ");
            }
        }
        class Adapter:INewLog         //须具备新接口,老功能
        {
            private IOldLog iol;
            private IOldLog iol2;
            public Adapter()
            {

            }
            public Adapter(IOldLog iol, IOldLog iol2)
            {
                this.iol = iol;
                this.iol2 = iol2;

            }
            public void WriteLog()
            {
                iol.Write();
                iol2.Write();
            }
        }
        class Program
        {
            public static void Main()
            {
    /*
                FileLog fl = new FileLog();
    //            Adapter a1 = new Adapter(fl);
                INewLog a1 = new Adapter(new FileLog());
                a1.WriteLog();

                DataBaseLog dl = new DataBaseLog();
    //            Adapter a2 = new Adapter(dl);
                INewLog a2 = new Adapter(new DataBaseLog());
                a2.WriteLog();*/
                FileLog fl = new FileLog();
                DataBaseLog dl = new DataBaseLog();
                INewLog inl = new Adapter(fl,dl);

                inl.WriteLog();
                Console.Read();
            }
        }

    }
    /*
    namespace Adapter
    {
        class OldClassA
        {
            public void XXOO()                  //A 老代码
            {
                Console.WriteLine("Hello, Everyone!");
            }
            public void OOXX()
            {
                Console.WriteLine("Byebye, Everyone!");
            }
        }
        abstract class NewClassB               //B 这样用
        {
            abstract public void SayHello();
            abstract public void SayBye();
        }
        class OldAdapterNew:NewClassB
        {
            private OldClassA oca = new OldClassA();
            public override void SayHello()
            {
                oca.XXOO();
            }
            public override void SayBye()
            {
                oca.OOXX();
            }
        }

        class Program
        {
            static void Main(string[] args)
            {
                OldAdapterNew oan = new OldAdapterNew();
                oan.SayHello();
                oan.SayBye();

                Console.Read();
            }
        }
    }
    */

  • 相关阅读:
    C语言|博客作业07
    C语言|博客作业06
    C语言|博客作业05
    C语言|博客作业04
    C语言|博客作业03
    C语言I博客作业02
    我的第一周作业!
    第三周作业
    读书笔记《莫让青春沾染暮气》
    第二周作业
  • 原文地址:https://www.cnblogs.com/MayGarden/p/1530872.html
Copyright © 2011-2022 走看看