设计模式-门面模式和调停者模式

门面模式Facade

​ 门面模式就是对功能的封装,举个例子,我需要一个汉堡,做成汉堡的流程对于客户来说不需要知道,只需要进行付费操作就行。这个门面模式也是同理,将内部功能相互排列好,提供一个对外的接口,用户只需要调用对外的那个接口就可以实现一系列的操作。

这是没有门面的效果,看图:

2.png

这是使用了门面之后的效果,看图:

_`9J~__TC2N`MYW2WPS598Q.png

​ 门面模式极大程度上对客户端和子系统内部进行解耦,如此子系统内部能更容易扩展和维护。也让子系统更加易用。例如:网关

调停者模式Mediator

​ 调停者模式是用来协调内部之间关系的,通过避免对象互相显式的指向对方,从而降低耦合。比较典型的就是manager:本来各个类是相互之间相互调用,关系混乱,现在兴建一个manager类,任何操作都用manager来完成,这个manager,就是调停者。

这是没有调停者的效果,看图:

1.png

当业务复杂,对象多时,这里的关系就会错综复杂,相互调用,耦合越来越高。

这是使用调停者之后的效果,看图:

AHJL9_VVHOA_LME_RVKFTE2.png

瞬间就清晰很多,对象与对象之间的耦合被降低了很多。例如:中间件

总结:门面模式针对于别人使用你的模块,这里面有对于你的顺序、业务有一定扩展修改的情况。
调停者模式更多的是在软件的内部,当软件的内部对象或模块之间相互通信时如何调用解耦。
两者非常相似,只是应对不同的位置而诞生。