理解设计模式(十一)——门面模式(外观模式)
Facade Pattern(门面模式)
- 理解设计模式(一)——简单工厂
- 理解设计模式(二)——工厂方法
- 理解设计模式(四)——建造者
- 理解设计模式(五)——原型模式
- 理解设计模式(六)——单例模式
- 理解设计模式(七)——适配器模式
- 理解设计模式(八)——桥接模式
- 理解设计模式(九)——组合模式
- 理解设计模式(十)——装饰模式
提出问题
有时候,我们在多个地方都要用到相同的若干个模块,导致依赖关系十分复杂,代码冗余程度非常高。比如说,在系统的多个地方我们都要对文件进行加密。对文件进行加密的过程中,我们需要读取文件,写入文件,还需要加密模块。那么,我们就会在程序的多个地方重复调用这几个模块对应的函数。如果后期需要对其进行修改,比如修改加密的方式,可能需要在整个系统中到处寻找调用了加密模块的地方。修改起来很不方便。因此,需要找一个方法解决依赖过于分散的问题。
解决问题
之前提到的问题的核心其实是三个模块过于分散,不符合高内聚的设计要求。如果我们把三个模块组合到一起,形成一个统一的模块,然后再在程序各个地方调用这个模块,我们就提高了代码的内聚程度。如果要修改,只需要修改新组成的模块即可。
下面使用代码来演示:
class FileReader { |