Win8.1应用开发之适配器模式(C#实现)

实际上适配器模式是用于解耦。设想一下我们的程序模块A在与模块B打交道时,需要在许多地方多次使用B中某个类的方法,而负责开发B的程序猿Tom还未完全实现该类,会随时更改该类中的方法,那么当Tom在修改时,负责A的攻城狮Jerry不得不进行苦逼的修改。聪明的项目经理Dabao想出了好方法——适配器模式,于是在Tom和Jerry之间进行了如下设计:

 /// <summary>

    /// B中目前只定义了英雄KASS

    /// </summary>

    public class KASS

    {

        public void R()

        {

            //KASS的技能

        }

    }





        /// <summary>

    /// 定义英雄的接口

    /// </summary>

    public class Hero

    {

        /// <summary>

        /// 使用virtual修饰以便子类可以重写

        /// </summary>

        public virtual void attack()

        {

            //英雄进攻的方法和招数

        }

    }

 



    /// <summary>

    /// 定义适配器

        /// B暂时提供英雄KASS

    /// </summary>

    public class HeroAdapter:Hero

    {

        // 建立一个私有的英雄KASS对象

        private KASS kass = new KASS();



        /// <summary>

        /// 通过重写,表面上调用attack()方法,实际调用R()

        /// </summary>

        public override void attack()

        {

            kass.R();

        }

    }

        

        

        /// <summary>

    /// Tom负责的模块A

    /// </summary>

        public class A

    {

        public static void Main(string[] args)

        {

            // A需要借助B中的英雄完成进攻的任务,但B还未定下是那个英雄,所以不能直接创建特定英雄的对象

                        // 但我们知道肯定要一个英雄,并且需要这个英雄去进攻

            Hero hero = new HeroAdapter();

            hero.attack();



            //...

        }

    }

详细说明:http://wp.662p.com/thread-8244-1-1.html

你可能感兴趣的:(适配器模式)