外观者模式

一、概念

为子系统中的一组接口提供一个统一的接口。外观模式定义了一个更高层次的接口,这个接口使得这一子系统更加容易使用。

二、UML图

外观者模式_第1张图片
外观模式.png

三、角色

子系统类:每个子系统定义了相关功能和模块的接口。
Facade(外观类):整合子系统中的接口,客户端可以调用这个类的方法。
Clients(客户端):通过外观类提供的接口和各个子系统的接口进行交互。

四、优缺点

优点

1.使用外观模式可以使项目更好的分层,增强了代码的扩展性。
2.客户端屏蔽了子系统组件,使客户端和子系统之间实现了松耦合关系。

五、场景

今天还是拿买车说事。前面我们选好了车,现在进入到买车的具体流程中。你从4S店买一辆车,几乎要涉及到店里的每个部门,比如财务部门、销售部门、售后服务部门等等。
那么问题来了,我们买一辆车真的就需要把4S店的每个部门都跑一边吗?其实没必要,我们只要跟接待自己的销售服务人员沟通好就行了,剩下的事情,她可以帮我们做。比如说:我们只要选好付款方式,然后去交钱就完事了,并不关心财务部门内部那些全款买车的流程和贷款买车的流程;也不用关心怎样去销售部门拿赠品;也不用关心售后服务部门谁来帮你做那些服务内容;这一切我们只要跟接待自己的销售人员沟通就好了。
这个例子中4S店的各个部门其实就类似一个个的子系统,而接待我们的美女销售就是外观角色。下面我们看一下具体的代码实现。

你可能感兴趣的:(外观者模式)