C#設計模式以外觀模式(Facade Mode)

  1. 外觀模式c#

     爲子系統中的一組接口提供一個一致的界面,此模式定義了一個高層接口,這個接口使得這一子系統更加容易使用.
    設計模式

  2. 例子(引用於大話設計模式)架構

        子系統類代碼以下:
spa

class SubSystemOne
    {
        public void MethodOne()
        {
            Console.WriteLine("子系統方法一");
        }
    }

    class SubSystemTwo
    {
        public void MethodTwo()
        {
            Console.WriteLine("子系統方法二");
        }
    }

    class SubSystemThree
    {
        public void MethodThree()
        {
            Console.WriteLine("子系統方法三");
        }
    }

        外觀類將子系統的方法加以組合,代碼以下:
設計

class Facade
    {
        SubSystemOne one;
        SubSystemTwo two;
        SubSystemThree three;

        public Facade()
        {
            one = new SubSystemOne();
            two = new SubSystemTwo();
            three = new SubSystemThree();
        }

        public void MethodA()
        {
            Console.WriteLine("\n方法組A() ----");
            one.MethodOne();
            two.MethodTwo();
        }

        public void MethodB()
        {
            Console.WriteLine("\n方法組B() ----");
            three.MethodThree();
        }
    }

        客戶端能夠直接引用外觀類代碼,而沒必要接觸到實際的子系統部分,示例代碼以下:
code

class Program
    {
        static void Main(string[] args)
        {
            Facade facade = new Facade();

            facade.MethodA();
            facade.MethodB();

            Console.Read();
        }
    }

  3. 適用狀況對象

      外觀模式在面向對象的開發當中很是經常使用。
接口

        1) 在設計初期階段,若是利用經典的三層架構,就須要考慮在數據訪問層和業務邏輯層、業務邏輯層和表示層的層與層之間創建外觀Facade,能夠爲複雜的子系統提供一個簡單的接口,下降了耦合度。
three

        2)在開發階段,子系統常常會由於不斷的重構演化變得愈來愈複雜,會產生不少細小的類,給外部調用他們的用戶程序帶來了困難。使用外觀模式能夠提供一個簡單的接口。
開發

        3)在維護一個大型的遺留程序時,若是這個系統已經很是難以維護和擴展,但它又包含着重要的功能。此時也能夠用外觀模式,爲設計粗糙或者高度複雜的遺留代碼提供一個簡單的接口。讓新系統與Facade交互,Facade與遺留代碼交互全部複雜的工做。

相關文章
相關標籤/搜索