门面模式 php

//门面模式 (Facade)又称外观模式,用于为子系统中的一组接口提供一个一致的界面。门面模式定义了一个高层接口,这个接口使得子系统更加容易使用:引入门面角色之后,用户只需要直接与门面角色交互,用户与子系统之间的复杂关系由门面角色来实现,从而降低了系统的耦

class Camera{

public function turnOn(){

var_dump("开");

}

public function turnOff(){

var_dump("关");

}

public function rotate($degrees){}

}

class Light{

public function turnOn(){

var_dump("开");

}

public function turnOff(){

var_dump("关");

}

public function changeBulb(){}

}

class Sensor{

public function activate(){}

// diːˈæktɪveɪt 停用

public function deactivate(){}

public function trigger(){}

}

class Alarm{

public function activate(){}

public function deactivate(){}

public function ring(){}

public function stopRing(){}

}

class SecurityFacade{

private $camera1, $camera2;

private $light1, $light2, $light3;

private $sensor;

private $alarm;

public function __construct()

{

$this->camera1 = new Camera();

$this->camera2 = new Camera();

$this->light1  = new Light();

$this->light2  = new Light();

$this->light3  = new Light();

$this->sensor  = new Sensor();

$this->alarm   = new Alarm();

}

public function activate() {

$this->camera1->turnOn();

$this->camera2->turnOn();

$this->light1->turnOn();

$this->light2->turnOn();

$this->light3->turnOn();

$this->alarm->activate();

$this->alarm->activate();

}

public  function deactivate() {

$this->camera1->turnOff();

$this->camera2->turnOff();

$this->light1->turnOff();

$this->light2->turnOff();

$this->light3->turnOff();

$this->alarm->deactivate();

$this->alarm->deactivate();

}

}

$securityObj = new SecurityFacade();

$securityObj->activate();

$securityObj->deactivate();

//string(3) "开"

//string(3) "开"

//string(3) "开"

//string(3) "开"

//string(3) "开"

//string(3) "关"

//string(3) "关"

//string(3) "关"

//string(3) "关"

//string(3) "关"

门面模式php,门面模式 php相关推荐

  1. 设计模式的理解 : 门面模式、外观模式 (Facade)

    门面模式又称外观模式:主要思想就是用一个提供些专门进行对外访问的接口,避免外部程序直接调用内部方法,对内部方法进行有效的屏蔽. 以医院为例 : (转自 菜鸟教程) 一个医院的系统功能有多种,如果让病人 ...

  2. java设计模式之外观模式(门面模式)

    针对外观模式,在项目开发和实际运用中十分频繁,但是其极易理解,下面就简要介绍一下. 一.概念介绍 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口.这种类型的设计 ...

  3. 设计模式---接口隔离模式之门面模式(Façade)

    前提:接口隔离模式 在组建构建过程中,某些接口之间直接的依赖常常会带来很多问题.甚至根本无法实现.采用添加一层间接接口(稳定的),来隔离本来相互紧密关联的接口是一种常见的解决方案. 典型模式: 门面模 ...

  4. php门面理解,php 门面模式(外观模式)

    header("content-type:text/html;charset=utf-8"); // ==================php 门面模式(外观模式) ====== ...

  5. Java设计模式之外观模式(门面模式,迪米特法则的具体实现,抽象外观类改进)

    一.概述 引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口.简而言之,外观模式就是定义了一个高层接口,这个接口可以使得这一子系统更加容易使用. 如果没有这个外观类, ...

  6. 门面(facade)模式

    ref:http://www.cnblogs.com/java-my-life/archive/2012/05/02/2478101.html 在阎宏博士的<JAVA与模式>一书中开头是这 ...

  7. 深入理解设计模式-外观模式(门面模式)

    文章目录 一.什么是外观模式 二.样例分析 三.优缺点 四.使用场景 五.Servlet源码应用解析 结尾 一.什么是外观模式 外观模式也称为门面模式,是一种通过为多个复杂的子系统提供一个一致的接口, ...

  8. JAVA设计模式之(九)门面模式(外观模式)

    本文继续介绍23种设计模式系列之门面模式(外观模式). 医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其"分而治之",把一个系统划分为几个较小的子 ...

  9. Facade模式(门面模式)

    模式简介 门面模式用于客户端与内部系统的解耦,客户端对内部系统的调用封装在门面类中,让客户端通过门面类调用功能,从而简化了客户端对内部系统的调用. 模式UML图 代码示例(C#) 提示:可在本栏目的资 ...

  10. 门面模式(外观模式)

    原文链接:https://www.1024cc.cn 定义 外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观 ...

最新文章

  1. android 学习随笔十七(服务 )
  2. Java面试官:给Java面试者的八点建议
  3. 14、ListView案例
  4. 解决At least one JAR was scanned for TLDs yet contained no TLDs. 问题
  5. linux内核引导时,从文件/etc/fstab 中读取要加载的文件系统
  6. Java基础:由JVM内存模型详解线程安全
  7. 为什么中国程序员水平一直上不了层次?无非是这些原因!
  8. 最没节操的地下匿名社交创始人,可以拯救Google+?
  9. 开机流程与主引导分区(MBR)——鸟哥私房菜
  10. 重启唯一的窗体实例,以及调用系统重启函数失败解决办法
  11. java二次指数平滑法预测未来的值
  12. MySQL的varchar水真的太深了,你真的会用吗?
  13. HDU 4714 Tree2cycle:贪心
  14. H.264参考软件JM12.2RC代码详细流程
  15. php分片数据库,4、PHP测试分片集群
  16. python做一个http接口测试框架
  17. JavaScript事件串连执行多个处理过程的方法
  18. 技术干货 | 六分钟学会使用 HBuilder 引入构建 mPaaS 小程序
  19. Tomcat调优技巧
  20. 借《鱿鱼游戏》带动Q3财报走出水逆,奈飞的王者回归并非意外

热门文章

  1. JAVA智慧防疫上报系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署
  2. CES Asia 2016落下帷幕,VR展台看点大盘点
  3. 2.Unity2D 横版 帧动画sprite animation+动画状态机animator+丝滑连击动作
  4. flv.js 插件 完成 flv 格式的视频播放
  5. unity给头发添加物理_unity3d Hair real time rendering 真实头发实时渲染
  6. 趣谈网络协议 - 第16讲 | 流媒体协议:如何在直播里看到美女帅哥?
  7. javascript笔记总结篇(全集合)
  8. 计算机断电后黑屏怎么办,如何解决win7系统电脑开机后断电黑屏的故障
  9. 秋实大哥与线段树 UESTC - 1073
  10. 进击的 JAMStack