作用:
为一组具有复杂且全面的接口对象提供一个简单特定的接口。
正文:
“金玉其外,败絮其中。”这句话对门面模式倒是可以解释。“金玉其外”指的就是门面,是调用者能看到的,是简单特定的接口。“败絮其中”指的就是复杂且全面的接口对象,里面有复杂的逻辑和结构,对调用者来说,是不可见的。
如果调用者不通过门面类而直接调用子系统的接口,那就是很头疼的事。“一叶障目,不见泰山。”这就是门面模式的作用。
我就用一个饭店的例子。
一个饭店,有很多的部门,顾客对每一个部门的职责不关心,要吃饭的顾客只要走进饭店,就有服务员过来服务,等酒足饭饱后,顾客只要说声买单,就有服务员过来结账。对于顾客而言,并不知道服务员是哪个部门的。
再举个例子,那就是照相机里的程序。在拍照前,照相机要做很多的事情,调节光圈,调节焦距,是否要开闪光灯,还有很多普通用户根本不知道的。而这些对于摄影初学者来说,是一窍不通的。这时自动拍照功能就是一个门面模式的应用。用户只要取景,再按快门就行了,其它一切复杂的动作都被隐藏起来。
门面模式不一定是一个类,也可以是一组函数。它把所有全面性和复杂性隐藏在一个非常简单且特定的接口后面,它是用户访问子系统的唯一途径,所有越过接口直接去访问子系统都是违背约定的。
门面模式比较简单,我也就不多说了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架