2011/07/01

[Design Patterns] 橋接模式(Bridge)

型態:結構模式(Structural Pattern)。
定義:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。
使用時機:結實現系統可能有多角度分類,每一種分類都有可能變化,那麼就把這種多角度分離出來讓它們獨立變化,減少它們之間的耦合。

結構圖:來源
2011-7-2 下午 12-02-56

實現程式碼:

Implementor 類別

abstract class Implementor
    {
        public abstract void Operation();
    }

ConcreteImplementorA  類別

class ConcreteImplementorA : Implementor
    {
        public override void Operation()
        {
            Console.WriteLine("具體實現A的方法執行");
        }
    }

ConcreteImplementorB 類別

 class ConcreteImplementorB : Implementor
    {
        public override void Operation()
        {
            Console.WriteLine("具體實現B的方法執行");
        }
    }
class Abstraction
    {
        protected Implementor implementor;

        public void SetImplementor(Implementor implementor)
        {
            this.implementor = implementor;
        }

        public virtual void Operation()
        {
            implementor.Operation();
        }

    }

RefinedAbstraction 類別

class RefinedAbstraction : Abstraction
    {
        public override void Operation()
        {
            implementor.Operation();
        }
    }

前端調用

 class Program
    {
        static void Main(string[] args)
        {
            Abstraction ab = new RefinedAbstraction();

            ab.SetImplementor(new ConcreteImplementorA());
            ab.Operation();

            ab.SetImplementor(new ConcreteImplementorB());
            ab.Operation();

            Console.Read();
        }
    }

輸出結果:
2011-07-02_140223

0 Comments:

張貼留言