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

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



posted on 2007-09-04 21:29  萧佰刚  阅读(925)  评论(0编辑  收藏  举报