前言

菜鸟教程对外观模式的描述是:外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。

这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

代码

class Images

{

public function methodA()

{

echo '图片类中的复杂逻辑A' . PHP_EOL;

}

public function methodB()

{

echo '图片类中的复杂逻辑B' . PHP_EOL;

}

public function methodC()

{

echo '图片类中的复杂逻辑C' . PHP_EOL;

}

}

class Text

{

public function methodA()

{

echo 'Text类中的复杂逻辑A' . PHP_EOL;

}

public function methodB()

{

echo 'Text类中的复杂逻辑B' . PHP_EOL;

}

public function methodC()

{

echo 'Text类中的复杂逻辑C' . PHP_EOL;

}

}

class Facade

{

private $images;

private $text;

public function __construct()

{

$this->images = new Images();

$this->text = new Text();

}

public function methodOne()

{

$this->images->methodA();

$this->text->methodB();

}

public function methodTwo()

{

$this->images->methodA();

$this->text->methodA();

$this->images->methodC();

}

}

$facade = new Facade();

$facade->methodOne();

$facade->methodTwo();

输出

image.png

说白了外观模式就是对一个或者多个类进行封装。以降低客户端调用时候的复杂性。上述的例子表示Facade类对Images类和Text类进行了封装,客户端只需要调用Facade类。

设计模式之外观模式php,PHP设计模式:外观模式相关推荐

  1. java设计模式 订阅模式_Java中的外观设计模式

    java设计模式 订阅模式 立面是指建筑物的外观. 当穿过街道时,我们所看到的只是建筑物的外观. 该工作面抽象了建筑物的所有复杂实现细节. 同样, 外观设计模式旨在为子系统中的一组接口提供统一的接口. ...

  2. 带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式

    摘要:本文我们主要介绍结构型模式中的代理模式.装饰模式.外观模式和享元模式. 本文分享自华为云社区<快来,这里有23种设计模式的Go语言实现(三)>,原文作者:元闰子 . 设计模式(Des ...

  3. java helper 设计模式_必知必会的 Java 设计模式入门知识(十):外观模式

    外观模式 GitHub 地址:yifanzheng/design-pattern​github.com 外观模式(Facade Design Pattern),在 GoF 的<设计模式>一 ...

  4. 设计模式GOF23之-------------------结构型模式(适配器模式、代理模式、桥接模式、装饰模式、组合模式、外观模式、享元模式)

    一 结构型模式 二 适配器模式 下面我将用代码模拟键盘usb接口和ps/2的转接器 的适配器过程: 首先定义客户需求: package GOF23;public interface Target {v ...

  5. Java设计模式(四):结构性模式(适配器模式、桥接模式、装饰模式、组合模式、外观模式、亨元模式、代理模式)

    目录 一· 适配器设计模式 1.1 现实生活中的适配器例子 1.2 基本介绍 1.3 工作原理 1.4 类适配器模式 1.5 对象适配器模式 1.6 接口适配器模式 1.7 适配器模式在 Spring ...

  6. 设计模式:结构型模式-桥接、外观、组合、享元模式

    结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构.它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者采用组合或聚合来组合对象. 由于组合关系或聚合关系比继承关系耦 ...

  7. JavaScript设计模式(三):结构型设计模式-外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式

    JavaScript设计模式 - 结构型设计模式 套餐服务-外观模式 外观模式(Facade) 水管弯弯-适配器模式 适配器模式(Adapter) 适配异类框架 参数适配 牛郎织女-代理模式 代理模式 ...

  8. 设计模式(八): 从“小弟”中来类比外观模式(Facade Pattern)

    在此先容我拿"小弟"这个词来扯一下淡.什么是小弟呢,所谓小弟就是可以帮你做一些琐碎的事情,在此我们就拿"小弟"来类比"外观模式".在上面一篇 ...

  9. 《Head First设计模式》第七章-适配器模式、外观模式

    适配器模式 适配器模式是什么,你一定不难理解,因为现实中到处都是.比如说: 如果你需要在欧洲国家使用美国制造的笔记本电脑,你可能需要使用一个交流电的适配器-- 当你不想改变现有的代码,解决接口不适配问 ...

  10. 【设计模式_青春版】结构型|外观模式

    文章目录 外观模式(结构型) 外观模式又名门面模式 结构 外观模式案例 代码实现 优缺点 优点 缺点 使用场景 在tomcat中的 外观模式(结构型) 外观模式又名门面模式 是一种通过为多个复杂的子系 ...

最新文章

  1. HttpClient 如何设置请求接口等待时间
  2. linux-security-limits
  3. 如何产生QPSK信号
  4. c++ 函数返回空_Python all() 函数
  5. Angular 小试牛刀[1]:Getting Started
  6. [HDU] 2611 Sequence two -优先队列和一般队列一起使用。
  7. 软件工程中需要学习和掌握的软件都有哪些_9个B端产品经理需要懂的技术
  8. 二叉搜索树+快速排序 查到文本中出现频率最多的100个词 【留学生作业】
  9. 上海盐城生物php招聘_上海祥源生物科技招聘国际商务专员,中英文熟练
  10. Xcode 证书生成、设置、应用(转)
  11. Python: str.split()和re.split()的区别
  12. 服务器对大文件传输有限制怎么办,20G、100G、200G大文件怎么通过网络远程传输,一招快速解决网络传输大文件...
  13. docker file镜像分层
  14. 全球最牛逼的并发架构,抖音排第二,它排第一!
  15. Android中运行免安装app,适用于免安装应用的 CTS
  16. 实现图片染色效果的三种方式
  17. Python:Excel自动录入、Excel表格快速合并(附有源代码)
  18. 超级记忆/图像数字记忆 110位数字图像转换表 01-10
  19. 聚合函数,数学、字符串、函数,时间日期函数
  20. 大学计算机打算及目的,大学生计算机实习目的和要求

热门文章

  1. mysql在计算机管理的服务里启动不了
  2. Spring Boot Favicon配置
  3. jquery给input赋值
  4. 【设计模式自习室】适配器模式
  5. mysql敤 罚_vue2浣跨敤echarts
  6. 【2023.5.3~2023.5.9】CTF刷题记录
  7. 如何制作和使用模板减少Origin绘图工作
  8. 应届毕业生该如何找工作
  9. tf2连服务器一直被中断,服务器崩溃致比赛延期 Kyle等解说声讨V社
  10. Android系统之路(初识MTK) ------ (详细精华)添加客供系统壁纸去除系统动态壁纸/Camera默认fine/remove android beam