外观模式 (Facade Pattern)

上面的类图没有画好,见下面Facade代码就知道是怎么回事了
它将各种子系统放在自己的属性里面,然后在Facade里面来调用子系统的功能。就像一个代理人的角色,给外界提供一个统一的窗口,但是自己内部需要调用哪些子系统就是自己的事情了。
给一个实例,文件加密,属性中有文件读取、加密、文件写入三个子模块,这样文件加密的功能就写成流程了。不用让用户依次去调用三个子模块来完成加密操作。
在上面标准的外观模式下,如果需要对子系统类进行修改或更换,就必须修改外观类Facade的源码,这违背了开闭原则,对修改关闭。所以引入抽象外观类,在一定程度上解决了这个问题。
其实就是给外观类做了一个抽象类,上面还含有拓展新的文件加密的代码。
另外可以将外观类做成单例模式。
外观模式挺简单的,就是将其他的可以组成大系统的子系统们绑在了一起,在外观类中也可以通过协调子系统之间的功能来完成业务流程的处理。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了