设计模式——结构型模式之外观模式(超常用的模式之一、类比+图解、一文看懂外观模式)

设计模式

系列文章:

一、创建型模式——工厂模式
二、创建型模式——单例模式、原型模式
三、创建型模式——建造者模式
四、结构型模式——装饰者模式
五、结构型模式——代理、适配器模式
六、结构型模式——外观模式



前言

设计模式是进行实际开发的基石,是前人不断总结试错得出的宝贵开发经验,也是开发人员之间相互理解共同设计的关键标准。学习设计模式能够帮助我们初学者更好理解结构化的开发流程,摆脱只会写一段代码而不能上升为一个项目的不上不下的尴尬处境

外观模式隐藏了子模块细节,是将小模块包装成一个系统级模块不得不使用的模块之一,也是程序设计最常用的设计模式之一。
核心思想将多个子模块进行封装提供一个统一的出口给其他系统复用。

一、外观模式定义

外观模式(Facade Pattern):又叫门面模式,是将一个子系统的通信通过一个统一的外观角色进行封装,定义一个高层接口使得子系统更容易复用的一种设计思想。

也就是说隐藏了子系统细节,提供低耦合度的中间部件(外观类)给其他部分使用,有效的统一的接口,降低了使用难度。

简单的理解见如图:
在这里插入图片描述

UML图解
在这里插入图片描述

二、一个应用场景(图解)

在自然净化安保公司有一套小型的加密系统,里面有三个工具类为此提供服务——FileRead类负责读入需要加密的信息、CipherMachine负责加密、LevelController负责添加权限。

在没有外观模式的时候,各部门都随意的使用这几个工具,如下图:
在这里插入图片描述
其中:财务部有时候忘记加密了、项目管理部又忘记添加权限管理了…等小问题;现在公司需要安全升级,由于加密系统泄露,需要更改一套加密类,要求替换原来的加密类(需要每个被使用的地方都更改相关的方法),维护人员已经哭晕在厕所了…

在了解了如此缺陷之后,开发者利用外观模式进行了工具模块的包装如下:
在这里插入图片描述

现在大家都使用一个工具包类就可以调用以前的一切功能了,外观只是实现了方法的转接,内核还是原来的工具类。但是此时可以很方便简洁的调用方法,已经有效的更新工具类的方法了。
维护人员再也不用担心啦

结尾

作者长期更新,如果觉得本文还算不错的话,请给我一个大大的赞!!!
如果非常赞同这篇文章,请关注我,持续了解更多精彩博文!!!

作者主攻Java Web方向,平时长期更新Java Web基础概念文章,以及算法和数据结构——【一日双题—见微知著】系列。同时设计模式系列也会尽快一月内完结

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码之狐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值