PHP设计模式之中介者模式(Mediator)代码实例大全(24)

目的
本模式提供了一种轻松的多组件之间弱耦合的协同方式。如果你有个 “情报中心”,观察者模式也是个好选择,类似于控制器(并非 MVC 意义上的控制器)。

所有关联协同的组件(称作 Colleague)仅与 MediatorInterface 接口建立耦合,面向对象编程中这是好事,一个良友胜于有多个朋友。这是该模式的重要特性。
UML图

★官方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进阶教程,全系列! > 内容不错的话希望大家支持鼓励下点个赞/喜欢,欢迎一起来交流;另外如果有什么问题 建议 想看的内容可以在评论提出
posted @ 2020-09-18 14:42  phpyu  阅读(148)  评论(0编辑  收藏  举报