型態:結構模式(Structural Pattern)。
定義:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。
使用時機:結實現系統可能有多角度分類,每一種分類都有可能變化,那麼就把這種多角度分離出來讓它們獨立變化,減少它們之間的耦合。
結構圖:來源
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(); } }
0 Comments:
張貼留言