专栏首页决胜机器学习设计模式专题(九) ——外观模式

设计模式专题(九) ——外观模式

设计模式专题(九)

——外观模式

(原创内容,转载请注明来源,谢谢)

一、概述

外观模式(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

相关阅读:

设计模式专题(八) ——模板方法模式

设计模式专题(七)——建造者模式

设计模式专题(六)——原型模式

设计模式专题(五)——工厂方法模式

设计模式专题(四)——代理模式

设计模式专题(三)——装饰模式

设计模式专题(二)——策略模式

设计模式专题(一)——面向对象的设计原则

本文分享自微信公众号 - 决胜机器学习(phpthinker),作者:linhxx

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 设计模式专题(二十四) ——访问者模式

    设计模式专题(二十四)——访问者模式 (原创内容,转载请注明来源,谢谢) 一、概述 访问者模式(visitor)表示一个作用于某对象结构中的各元素的操作,它使...

    用户1327360
  • 设计模式专题(二十二) ——享元模式

    设计模式专题(二十二)——享元模式 (原创内容,转载请注明来源,谢谢) 一、概述 享元模式(Flyweight)是运用共享技术,有效地支持大量细粒度的对象。享...

    用户1327360
  • 设计模式专题(十七) ——单例模式

    设计模式专题(十七)——单例模式 (原创内容,转载请注明来源,谢谢) 一、概述 单例模式(Singleton)保证一个类仅有一个实例,并提供一个访问它的全局访...

    用户1327360
  • Java进阶篇设计模式之一 ----- 单例模式

    在刚学编程没多久就听说过设计模式的大名,不过由于当时还是个彻彻底底的菜鸟,并没有去触碰。直到在开始工作中对简单的业务代码较为熟悉之后,才正式的接触设计模式。当时...

    格姗知识圈
  • 设计模式专题(十一)——抽象工厂模式

    设计模式专题(十一)——抽象工厂模式 (原创内容,转载请注明来源,谢谢) 一、概述 抽象工厂模式(AbstractFactory),提供创建一系列相关或者相互...

    用户1327360
  • 设计模式(九):抽象工厂模

    它属于创建型模式。在抽象工厂模式中,每个具体工厂都提供了多个用于创建多种不同类型具体对象的方法,这些不同类型的对象都存在一个共同的属性,构成一个族。

    xujjj
  • 面向对象设计原则(1)——学习使用设计模式

    设计模式(Design Pattern)是一套被反复使用、多数人知晓、分类编目、代码设计经验的总结。使用设计模式是为了提高代码的可复用性、可扩充性可维护性,让代...

    Dabelv
  • 设计模式(0)—— 概述

    设计模式(Design Pattern),是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

    阳光岛主
  • 算法族的集中管理——策略模式

    策略模式是指对一系列的算法定义,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 我们正好可以使用策略模式加...

    文彬
  • Java设计模式(三—四)----工厂模式

    Java设计模式 工厂模式 一、引言 二、分类 三、简单工厂模式 四、工厂方法模式 五、抽象工厂模式 六、和工厂方法模式区别 七、总...

    汤高

扫码关注云+社区

领取腾讯云代金券