最近在看关于servlet的实现原理,applicationContext 等会大量用到门面模式。这里做一个门面模式的转载。
1. 存在意义
举例说明: 如果说你要盖一个房子,需要去找 瓦工,泥工,砌墙工。 一个一个去找太麻烦了,这是出现一个中介,中介已经谈拢了所用工种,你只需要和这个中介谈好,中介会自动帮你处理所有工作。 这个中介就相当于是门面。
2.门面模式介绍
定义:提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。
本质:就是化零为整;引入一个中介类,把各个分散的功能组合成一个整体,只对外暴露一个统一的接口;
设计类图:
3.例子DEMO
见链接:https://www.jianshu.com/p/11e581f73deb
4.优缺点
优点:
● 提高了灵活性
依赖减少了,灵活性自然提高了。不管子系统内部如何变化,只要不影响到门面对象,任你自由活动
● 提高安全性
想让你访问子系统的哪些业务就开通哪些逻辑,不在门面上开通的方法,你休想访问到。
缺点:
门面模式最大的缺点就是不符合开闭原则,对修改关闭,对扩展开放。