目的
本模式提供了一種輕鬆的多組件之間弱耦合的協同方式。若是你有個 「情報中心」,觀察者模式也是個好選擇,相似於控制器(並不是 MVC 意義上的控制器)。php
全部關聯協同的組件(稱做 Colleague)僅與 MediatorInterface 接口創建耦合,面向對象編程中這是好事,一個良友勝於有多個朋友。這是該模式的重要特性。
UML圖laravel
★官方PHP高級學習交流社羣「點擊」管理整理了一些資料,BAT等一線大廠進階知識體系備好(相關學習資料以及筆面試題)以及不限於:分佈式架構、高可擴展、高性能、高併發、服務器性能調優、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql優化、shell腳本、Docker、微服務、Nginx等多個知識點高級進階乾貨
代碼
MediatorInterface.php面試
database = $database; $this->server = $server; $this->client = $client; $this->database->setMediator($this); $this->server->setMediator($this); $this->client->setMediator($this); } public function makeRequest() { $this->server->process(); } public function queryDb(): string { return $this->database->getData(); } /** * @param string $content */ public function sendResponse($content) { $this->client->output($content); } } Colleague.php
mediator = $mediator; } } Subsystem/Client.php
mediator->makeRequest(); } public function output(string $content) { echo $content; } } Subsystem/Database.php
mediator->queryDb(); $this->mediator->sendResponse(sprintf("Hello %s", $data)); } } 測試 Tests/MediatorTest.php
expectOutputString('Hello World'); $client->request(); } } PHP 互聯網架構師成長之路*「設計模式」終極指南 PHP 互聯網架構師 50K 成長指南+行業問題解決總綱(持續更新) 面試10家公司,收穫9個offer,2020年PHP 面試問題 ★若是喜歡個人文章,想與更多資深開發者一塊兒交流學習的話,獲取更多大廠面試相關技術諮詢和指導,歡迎加入咱們的羣啊,暗號:phpzh(君羊號碼856460874)。 2020年最新PHP進階教程,全系列! > 內容不錯的話但願你們支持鼓勵下點個贊/喜歡,歡迎一塊兒來交流;另外若是有什麼問題 建議 想看的內容能夠在評論提出