设计模式专题(九)
——外观模式
(原创内容,转载请注明来源,谢谢)
一、概述
外观模式(Facade),为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
二、优点
1、在设计初期阶段,根据业务层级,将不同的层级进行分离,如数据访问层、业务逻辑层、业务展示层进行分离,不同的层级实现该层必须的功能。
2、通过其他设计模式,通常会生成很多的类,则可以用外观模式配合其他模式,实现将功能封装起来,仅要求固定格式的输入,并告知返回内容,将功能做成接口,便于调用。
3、当需要进行系统底层架构改造时,也可以将原先的系统部分比较重要的底层架构,用外观模式完全封装起来,新的系统架构在满足兼容原先的模式的前提下,进行新框架的开发。
三、类图
四、运用场景
外观模式最常用于APP接口开发、API开发、系统间服务调用。
现在APP开发模式通常是IOS/Android(客户端)负责编写页面,数据交互用PHP/JAVA等服务端语言进行实现。因此,就存在前后台的调用。
客户端和服务端通过JSON进行传参。在项目开发中,对于设计两端交互的,通常两边的开发人员需要定下接口文档,规定实现某个功能(例如登陆)需要调用的方法路径与名称,客户端传入参数的格式、字段名、数据类型,服务端返回的参数名、格式、数据类型。此时,即实现外观模式。
假设服务端定义一个bool checkLogin($user,$pass),用于登陆的验证。对于客户端而言,不用关心服务端如何实现验证登陆,只需要知道调用某路径下的此方法,传入string类型的用户名和密码,即可接收到bool类型的返回值。
因此,可以将外观模式简单看作方法的调用,对于调用者来说,相当于存在一个方法checkLogin可供调用,而服务端需要去具体实现验证的过程。
——written by linhxx 2017.08.01
相关阅读: