php設計模式之Facade(面板模式)介紹

來源:互聯網
上載者:User
為子系統中的一組介面提供一個一致的介面,定義一個高層介面,使得這一子系統更加的容易使用

模式定義:面板模式(Facade Pattern):外部與一個子系統的通訊必須通過一個統一的外觀對象進行,為子系統中的一組介面提供一個一致的介面,面板模式定義了一個高層介面,這個介面使得這一子系統更加容易使用。面板模式又稱為門面模式,它是一種對象結構型模式。
模式結構:

面板模式的就是讓client用戶端以一種簡單的方式來調用比較複雜的系統,來完成一件事情。

面板模式,也叫門面模式。它多用於在多個子系統之間,作為中介層。使用者通過Facade對象,直接請求工作,省去了使用者調用多個子系統的複雜動作。

面板模式常舉的一個例子,就是我們買了好多支股票,但是時間有限。盯盤很複雜,我們搞得一團糟。所以,我們乾脆買了股票基金。股票基金就好比於面板模式的Facade對象,而子系統就是股票基金投的各支股票。

代碼如下:

class car { public function start() { print_r("車子啟動"); } public function check_stop() { print_r("刹車檢查正常"); } public function check_box() { print_r("檢查油箱正常"); } public function check_console() { print_r("檢查儀錶盤是否異常"); } } //facade模式 class carfacade { public function catgo(car $carref){ $carref->check_stop(); $carref->check_box(); $carref->check_console(); $carref->start(); } } //用戶端可以簡單的去調用。 $car = new car(); $carObj = new carfacade(); $carObj->catgo($car);

代碼如下:

<?php /** * 面板模式 樣本 * * 為子系統中的一組介面提供一個一致的介面,定義一個高層介面,使得這一子系統更加的容易使用 */ class SubSytem1 { public function Method1() { echo "subsystem1 method1<br/>"; } } class SubSytem2 { public function Method2() { echo "subsystem2 method2<br/>"; } } class SubSytem3 { public function Method3() { echo "subsystem3 method3<br/>"; } } class Facade { private $_object1 = null; private $_object2 = null; private $_object3 = null; public function construct() { $this->_object1 = new SubSytem1(); $this->_object2 = new SubSytem2(); $this->_object3 = new SubSytem3(); } public function MethodA() { echo "Facade MethodA<br/>"; $this->_object1->Method1(); $this->_object2->Method2(); } public function MethodB() { echo "Facade MethodB<br/>"; $this->_object2->Method2(); $this->_object3->Method3(); } } // 執行個體化 $objFacade = new Facade(); $objFacade->MethodA(); $objFacade->MethodB();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.