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

目的
本模式提供了一种轻松的多组件之间弱耦合的协同方式。若是你有个 “情报中心”,观察者模式也是个好选择,相似于控制器(并不是 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进阶教程,全系列! > 内容不错的话但愿你们支持鼓励下点个赞/喜欢,欢迎一块儿来交流;另外若是有什么问题 建议 想看的内容能够在评论提出