設計模式學習筆記十——Facade模式

來源:互聯網
上載者:User
動機:組件包含多個複雜的子系統,其客戶直接依賴該組件子系統,隨著客戶程式和各子系統的演化,這種過多的耦合面臨著變化的挑戰。本模式為子系統中的一組介面提供一個一致的介面,定義了一個高層介面,這個介面使得這一子系統更加容易使用。

情境:ThinkPad由多個複雜的子系統組成:主板、CPU、電源等。這些子系統協同工作,提供給客戶具有統一操作介面的ThinkPad。

結構

代碼實現

namespace DesignPattern.Facade
{
    internal class Mainboard
    {
        public void Start()
        {
        }

        public void Operate()
        {
        }

        public void Shutdown()
        {
        }
    }

    internal class CPU
    {
        public void Start()
        {
        }

        public void Operate()
        {
        }

        public void Shutdown()
        {
        }
    }

    internal class Power
    {
        public void Start()
        {
        }

        public void Operate()
        {
        }

        public void Shutdown()
        {
        }
    }
}

/**//*
 * Facade統一介面
*/
namespace DesignPattern.Facade
{
    public class ThinkPadFacade
    {
        Mainboard mainboard = new Mainboard();
        CPU cpu1 = new CPU();
        CPU cpu2 = new CPU();
        Power power = new Power();

        public void Start()
        {
            power.Start();
            mainboard.Start();
            cpu1.Start();
            cpu2.Start();
        }

        public void Operate()
        {
            cpu1.Operate();
            cpu2.Operate();
        }

        public void Shutdown()
        {
            cpu1.Shutdown();
            cpu2.Shutdown();
            mainboard.Shutdown();
            power.Shutdown();
        }
    }
}

要點
1、從客戶程式的角度看,本模式不僅簡化了整個組件系統的介面,同時對於組件內部與外部客戶程式來說,從某種程度上也達到了一種“解耦”的效果——內部子系統的變化不會影響到Facade介面的變化
2、本設計模式更注重從架構的層次去看整個系統,而不是單個類的層次。本模式很多時候更是一種架構設計模式。
3、與其他結構型模式的區別:Facade模式注重簡化介面,Adapter模式注重轉換介面,Bridge模式注重分離介面(抽象)與其實現,Decorator模式注重穩定介面的前提下為對象擴充功能。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.