ブリッジモード-異なる場合に異なる話をする


ブリッジモードは朝MMに会って、朝は良いと言って、夜MMに会って、夜は良いと言います;MMに出会って新しい服を着て、あなたの服がとてもきれいだと言って、MMの新しく作った髪型に出会って、あなたの髪の毛がとてもきれいだと言います.「朝、MMに会ったらどう言ったらいいか」という質問をしないで、自分でBRIDGEを組み合わせておけばいいのではないでしょうか.これがブリッジモードです!
ブリッジモードは、ブリッジモード(Bridge)が抽象部分をその実装部分から分離し、独立して変化させることを意図する.
ブリッジパターンクラス図
ブリッジモード実装
 /// <summary>
    ///         
    /// </summary>
    abstract class Bloger
    {
        public abstract void Greet();
    }

    /// <summary>
    ///   :   !
    /// </summary>
    class MorningImp : Bloger
    {
        public override void Greet()
        {
            Console.WriteLine("   !");
        }
    }

    /// <summary>
    ///   :   
    /// </summary>
    class NightImp:Bloger
    {
        public override void Greet()
        {
            Console.WriteLine("   !");
        }
    }

    /// <summary>
    ///   :        !
    /// </summary>
    class ClothesImp : Bloger
    {
        public override void Greet()
        {
            Console.WriteLine("        !");
        }
    }

    /// <summary>
    ///   :        !
    /// </summary>
    class HeadformImp : Bloger
    {
        public override void Greet()
        {
            Console.WriteLine("        !");
        }
    }

    /// <summary>
    ///   MM   
    /// </summary>
    class Opportunity
    {
        protected Bloger imp;
        public void SetImp(Bloger imp)
        {
            this.imp = imp;
        }

        public virtual void ShowGreet()
        {
            Console.Write("       :");
            imp.Greet();
        }
    }

    /// <summary>
    ///   :  
    /// </summary>
    class Morning : Opportunity
    {
        public override void ShowGreet()
        {
            Console.Write("    MM:");
            imp.Greet();
        }
    }

    /// <summary>
    ///   :  
    /// </summary>
    class Night : Opportunity
    {
        public override void ShowGreet()
        {
            Console.Write("    MM:");
            imp.Greet();
        }
    }

    /// <summary>
    ///   :  MM      
    /// </summary>
    class Clothes : Opportunity
    {
        public override void ShowGreet()
        {
            Console.Write("  MM      :");
            imp.Greet();
        }
    }

    /// <summary>
    ///   :  MM     
    /// </summary>
    class Headform : Opportunity
    {
        public override void ShowGreet()
        {
            Console.Write("  MM     :");
            imp.Greet();
        }
    }

    /// <summary>
    ///          
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            //  :  
            Opportunity m = new Morning();
            //  :   !
            m.SetImp(new MorningImp());
            m.ShowGreet();

            //  :  
            Opportunity n = new Night();
            //  :   !
            n.SetImp(new NightImp());
            n.ShowGreet();

            //  :  MM      
            Opportunity c = new Clothes();
            //  :        !
            c.SetImp(new ClothesImp());
            c.ShowGreet();

            //  :  MM     
            Opportunity h = new Headform();
            //  :        !
            h.SetImp(new HeadformImp());
            h.ShowGreet();

            //  :  
            Opportunity o=new Morning();
            //    ,    MM     "   !",   !
            o.SetImp(new NightImp());
            o.ShowGreet();

            Console.Read();
        }
    }

ブリッジモードまとめ
朝MMに会って、朝の良い実现は朝MMに出会う时机と私の言うことを组み合わせて言えばいいです.同じように、朝MMに出会って私も夜が良いと言うことができて、それは朝の时机と私の言う话をすることです:“こんばんは”を组み合わせてすればいいです.ブリッジモードは合成/重合多重化の原則を体現し、重合は弱い所有関係を表し、AasBを体現している.合成は1種の強い所有関係で、厳格な部分と全体の関係を体現して、部分と全体のライフサイクルは同じで、AisBを体現して、できるだけ合成/重合を使って、できるだけ類の継承を使わないでください.
記事のアドレス:http://www.zhuli8.com/sjms/bridge.html