一、概念
为子系统中的一组接口提供一个统一的接口。外观模式定义了一个更高层次的接口,这个接口使得这一子系统更加容易使用。
二、UML图
外观模式.png三、角色
子系统类:每个子系统定义了相关功能和模块的接口。
Facade(外观类):整合子系统中的接口,客户端可以调用这个类的方法。
Clients(客户端):通过外观类提供的接口和各个子系统的接口进行交互。
四、优缺点
优点
1.使用外观模式可以使项目更好的分层,增强了代码的扩展性。
2.客户端屏蔽了子系统组件,使客户端和子系统之间实现了松耦合关系。
五、场景
今天还是拿买车说事。前面我们选好了车,现在进入到买车的具体流程中。你从4S店买一辆车,几乎要涉及到店里的每个部门,比如财务部门、销售部门、售后服务部门等等。
那么问题来了,我们买一辆车真的就需要把4S店的每个部门都跑一边吗?其实没必要,我们只要跟接待自己的销售服务人员沟通好就行了,剩下的事情,她可以帮我们做。比如说:我们只要选好付款方式,然后去交钱就完事了,并不关心财务部门内部那些全款买车的流程和贷款买车的流程;也不用关心怎样去销售部门拿赠品;也不用关心售后服务部门谁来帮你做那些服务内容;这一切我们只要跟接待自己的销售人员沟通就好了。
这个例子中4S店的各个部门其实就类似一个个的子系统,而接待我们的美女销售就是外观角色。下面我们看一下具体的代码实现。
网友评论