Facade门面模式
开发中要和系统中的多个类打交道,还必须理解这多个类之间的关系,太麻烦了,可以直接把这些错综复杂关系的类用一个Facade门面封装起来,就是对外的一个门面,调用者只需要和这个门面打交道即可。
你的api接口需要调用后面的很多的service 而不同的service也有很多不同的业务逻辑或者先后顺序的组合,那么就可以通过facade 门面模式来进行统一的管理和维护了。
举例一个生活上的事情,去营业厅或者其他银行大厅办理业务,不但要存钱还要交水费,电话费。在这里用户的合法性验证,水费的缴费操作,电话费的缴费操作,都由银行完成,你不用考虑这水费是转账还是直接打款,还是电话费是转账还是打款。你只用针对这个银行窗口办理你的业务就好了。那么这个窗口就是一个门面。
Mediator调停者模式
开发中遇到多个类之间内部打交道。每个类之间都不要互相打交道了,都通过一个调停者来交互。
Facade与Mediator区别
Facade门面-Mediator调停者可以看作是同一种设计模式,但是facade是对外操作来使用的,对于层与界的概念来看。对外层或者外界来说用的叫facade模式,而同层同界的就叫mediator模式了。
最容易理解的Mediator模式实现的一个工具就是MQ,消息中间件。所有模块只用从MQ中获取消息就可以了。不用理会其他模块是怎么具体处理。这种就是Mediator模式了。
原文链接:https://blog.csdn.net/qq_35396093/article/details/103130040网友回复
如何编写一个chrome插件实现多线程高速下载大文件?
cdn版本的vue在网页中出现typeerror错误无法找到错误代码位置怎么办?
pywebview能否使用webrtc远程控制共享桌面和摄像头?
pywebview6.0如何让窗体接受拖拽文件获取真实的文件路径?
如何在linux系统中同时能安装运行apk的安卓应用?
python有没有离线验证码识别ocr库?
各家的ai图生视频及文生视频的api价格谁最便宜?
openai、gemini、qwen3-vl、Doubao-Seed-1.6在ui截图视觉定位这款哪家更强更准?
如何在linux上创建一个沙箱隔离的目录让python使用?
pywebview如何使用浏览器自带语音识别与webspeech 的api?