外观模式又叫门面模式;
现在都是模块化开发了;
开发中很多时候都是在使用各种扩展包;
或者在外观模式中我们叫做子系统;
外观模式的作用就是减少子系统之间的耦合;
降低子系统的使用难度;
我们举个栗子;
实现一个加密文件内容的功能;
这个功能分为两部分;
如果我们每次都直接调用这两个类;
那耦合就有点高了;
这时候我们就加一层外观 Facade ;
在 Facade 中来完成文件读取和加密的过程;
在客户端调用的都是 Facade ;
SubSystem: 子系统 示例中指 File 和 Encrypt ;
Facade: 外观对象;
读取文件内容
File.php
加密
Encrypt.php
外观对象
Facade
运行;
index.php
从代码可以看出;
外观模式对客户端屏蔽了子系统;
但是也有缺点;
如果想增加子系统;
就需要修改 Facade ;
这就违反了开闭原则 ;
github示例:https://github.com/baijunyao/design-patterns/tree/master/Facade
本文为白俊遥原创文章,转载无需和我联系,但请注明来自白俊遥博客https://baijunyao.com 欢迎捐赠赞赏加入组织创建QQ群及捐赠渠道
最新评论