门面模式

门面模式

定义

Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higher-level interface that makes the subsystem easier to use.

要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。

分析

门面模式,顾名思义,就像门一样。门,便是从外面进入里面的途径,而门面模式正是指出,我们应该为子系统“安装一个门”,从而使客户端代码可以方便地使用子系统。客户端方便使用意味着客户端和子系统是低耦合的,而子系统确实高内聚的,这样升级子系统时,只要门面不变,Client基本不受影响。即减少了依赖,提高了灵活性;

实际上,门面模式也是指导如何构建子系统的一个模式。

实现

门面模式

体现的面向对象程序设计原则

单一职责原则:从小的功能点上来看,Facade模式并不符合,但是从大的方面来看,Facade只有一个功能或者职责:为Client提供使用子系统功能便捷方式。这里的便捷方式是指Client不需要了解Function之间的交互,这交给Facade处理即可;

里氏替换原则:并无体现,该原则适合于系统内部设计。

依赖倒置原则:Facade算是子系统(各个Function)的一个抽象了。所以也是符合该原则的;

接口隔离原则:从Client角度来说是符合的,因为Client并没有依赖过多的Function接口,只是依赖Facade这一接口。从Facade角度来说,各个Function接口都是它为Client提供服务所必须的,即也是符合的。

迪米特原则:Client仅仅是通过Facade来了解子系统。也算是符合的;

开闭原则:子系统因为Facade而得以封装,于是获得了灵活的扩展性;

关注个人微信公众号:落花流水存心阁,不仅能免费获得相关项目的源码,还可以扩展思维,启迪智慧哦~
门面模式
后台回复:设计模式。获得项目源码~(如果从聚宝盆里获得资源后便狠心离去,那么聚宝盆将因难过而沉睡过去,无法为您提供宝贝了。。。除非唤醒它!)

如果觉得文章写的不错,也可以小小地打赏一下嘛~
也期待合作,“码”上改变~

微信账号 支付宝账号
门面模式 门面模式