zoukankan      html  css  js  c++  java
  • 类适配器模式和对象适配器模式

      8月初公司领导叫我与公司一位同事到深圳龙岗区"南湾街道办"出差.由于最近正在研究设置模式--适配器模式,于是发现我们这次的出差也可以看着适配器模式(个人觉得) 写了个类适配器模式对象适配器模式 


    一:类适配器模式

     interface ITravel  //接口“出差”
        {
            void Travel();//出差
        }
     class tuyuan  //我们公司有 A ,B  两位员工
        {

            public void A()   //员工A
            {
                Console.Write("My name is A\n");
            }

            public void B()  //员工B
            {
                Console.Write("My name is B\n");
            }
        }

    class SouthBay : tuyuan, ITravel
        {
            public void Travel()  //开会决定到”南湾“出差要调入的人
            {
                base.A(); //调入我们公司的A员工南湾
                base.B(); //调入我们公司的B员工到南湾

            }

        }

    // 执行开会的结果 派员工出差
     static void Main(string[] args)
            {
                ITravel  target = new SouthBay();
                target.Travel(); //叫A,B两位员工到“南湾”出差
                Console.ReadLine();
            }

    输出:My name is A
       My name is B



    二:对象适配器模式

        interface ITravel  //接口“出差”
        {
            void Travel();//出差
        }

     class tuyuan  //“图元”公司有 A ,B  两为员工
        {
            public void A()   //员工A
            {
                Console.Write("My name is A\n");
            }

            public void B()  //员工B
            {
                Console.Write("My name is B\n");
            }
        }

     class SouthBay : ITravel //开会决定要A,B到南湾出差
        {
            tuyuan ty= new tuyuan();//建立公司对象事例
            public void Travel()
            {
                ty.A();    //出差的人
                ty.B();    //出差的人
            }
        }

     class TravelClass   //执行开会得出的结果
        {
            public void Process(ITravel target)
            {
                target.Travel();//执行出差任务
            }
        }

    //前台执行出差具体操作

     static void Main(string[] args)
         {
             TravelClass tc = new TravelClass();
             tc.Process(new SouthBay());
             Console.Read();
         }

    输出:My name is A
       My name is B

    以上所述 一种叫类适配器模式,另一种叫对象适配器模式。其中类适配器模式是以继承的方式(多继承)来实现,而对象适配器模式是以组合的方式(建立对象的事例)实现.
    但继承增加了模块间的耦合程度,而组合降低了耦合程度,所以在项目开发中往往建议多使用
    对象适配器模式



  • 相关阅读:
    趣谈多线程
    使用application manifest file
    参加一个.NET培训后的若干笔记
    遍历sql server数据库的简单方法
    为什么对继承的方法签名检查这么严格?
    Serialize Dictionary to xml using DataContractSerializer
    如何在sql中查询xml字符串
    从PowerDesigner概念设计模型(CDM)中的3种实体关系说起
    using "code coverage coloring" to help debuging
    日常工作中用到过的PowerShell指令
  • 原文地址:https://www.cnblogs.com/xiaobaigang/p/881968.html
Copyright © 2011-2022 走看看