设计模式
系列文章:一、创建型模式——工厂模式
二、创建型模式——单例模式、原型模式
三、创建型模式——建造者模式
四、结构型模式——装饰者模式
五、结构型模式——代理、适配器模式
六、结构型模式——外观模式
前言
设计模式是进行实际开发的基石,是前人不断总结试错得出的宝贵开发经验,也是开发人员之间相互理解共同设计的关键标准。学习设计模式能够帮助我们初学者更好理解结构化的开发流程,摆脱只会写一段代码而不能上升为一个项目的不上不下的尴尬处境
外观模式隐藏了子模块细节,是将小模块包装成一个系统级模块不得不使用的模块之一,也是程序设计最常用的设计模式之一。
其核心思想是将多个子模块进行封装提供一个统一的出口给其他系统复用。
一、外观模式定义
外观模式(Facade Pattern):又叫门面模式,是将一个子系统的通信通过一个统一的外观角色进行封装,定义一个高层接口使得子系统更容易复用的一种设计思想。
也就是说隐藏了子系统细节,提供低耦合度的中间部件(外观类)给其他部分使用,有效的统一的接口,降低了使用难度。
简单的理解见如图:
UML图解:
二、一个应用场景(图解)
在自然净化安保公司有一套小型的加密系统,里面有三个工具类为此提供服务——FileRead类负责读入需要加密的信息、CipherMachine负责加密、LevelController负责添加权限。
在没有外观模式的时候,各部门都随意的使用这几个工具,如下图:
其中:财务部有时候忘记加密了、项目管理部又忘记添加权限管理了…等小问题;现在公司需要安全升级,由于加密系统泄露,需要更改一套加密类,要求替换原来的加密类(需要每个被使用的地方都更改相关的方法),维护人员已经哭晕在厕所了…
在了解了如此缺陷之后,开发者利用外观模式进行了工具模块的包装如下:
现在大家都使用一个工具包类就可以调用以前的一切功能了,外观只是实现了方法的转接,内核还是原来的工具类。但是此时可以很方便简洁的调用方法,已经有效的更新工具类的方法了。
维护人员再也不用担心啦
结尾
作者长期更新,如果觉得本文还算不错的话,请给我一个大大的赞!!!
如果非常赞同这篇文章,请关注我,持续了解更多精彩博文!!!
作者主攻Java Web方向,平时长期更新Java Web基础概念文章,以及算法和数据结构——【一日双题—见微知著】系列。同时设计模式系列也会尽快一月内完结