门面模式php,门面模式 php
门面模式 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相关推荐
- 设计模式的理解 : 门面模式、外观模式 (Facade)
门面模式又称外观模式:主要思想就是用一个提供些专门进行对外访问的接口,避免外部程序直接调用内部方法,对内部方法进行有效的屏蔽. 以医院为例 : (转自 菜鸟教程) 一个医院的系统功能有多种,如果让病人 ...
- java设计模式之外观模式(门面模式)
针对外观模式,在项目开发和实际运用中十分频繁,但是其极易理解,下面就简要介绍一下. 一.概念介绍 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口.这种类型的设计 ...
- 设计模式---接口隔离模式之门面模式(Façade)
前提:接口隔离模式 在组建构建过程中,某些接口之间直接的依赖常常会带来很多问题.甚至根本无法实现.采用添加一层间接接口(稳定的),来隔离本来相互紧密关联的接口是一种常见的解决方案. 典型模式: 门面模 ...
- php门面理解,php 门面模式(外观模式)
header("content-type:text/html;charset=utf-8"); // ==================php 门面模式(外观模式) ====== ...
- Java设计模式之外观模式(门面模式,迪米特法则的具体实现,抽象外观类改进)
一.概述 引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口.简而言之,外观模式就是定义了一个高层接口,这个接口可以使得这一子系统更加容易使用. 如果没有这个外观类, ...
- 门面(facade)模式
ref:http://www.cnblogs.com/java-my-life/archive/2012/05/02/2478101.html 在阎宏博士的<JAVA与模式>一书中开头是这 ...
- 深入理解设计模式-外观模式(门面模式)
文章目录 一.什么是外观模式 二.样例分析 三.优缺点 四.使用场景 五.Servlet源码应用解析 结尾 一.什么是外观模式 外观模式也称为门面模式,是一种通过为多个复杂的子系统提供一个一致的接口, ...
- JAVA设计模式之(九)门面模式(外观模式)
本文继续介绍23种设计模式系列之门面模式(外观模式). 医院的例子 现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其"分而治之",把一个系统划分为几个较小的子 ...
- Facade模式(门面模式)
模式简介 门面模式用于客户端与内部系统的解耦,客户端对内部系统的调用封装在门面类中,让客户端通过门面类调用功能,从而简化了客户端对内部系统的调用. 模式UML图 代码示例(C#) 提示:可在本栏目的资 ...
- 门面模式(外观模式)
原文链接:https://www.1024cc.cn 定义 外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观 ...
最新文章
- android 学习随笔十七(服务 )
- Java面试官:给Java面试者的八点建议
- 14、ListView案例
- 解决At least one JAR was scanned for TLDs yet contained no TLDs. 问题
- linux内核引导时,从文件/etc/fstab 中读取要加载的文件系统
- Java基础:由JVM内存模型详解线程安全
- 为什么中国程序员水平一直上不了层次?无非是这些原因!
- 最没节操的地下匿名社交创始人,可以拯救Google+?
- 开机流程与主引导分区(MBR)——鸟哥私房菜
- 重启唯一的窗体实例,以及调用系统重启函数失败解决办法
- java二次指数平滑法预测未来的值
- MySQL的varchar水真的太深了,你真的会用吗?
- HDU 4714 Tree2cycle:贪心
- H.264参考软件JM12.2RC代码详细流程
- php分片数据库,4、PHP测试分片集群
- python做一个http接口测试框架
- JavaScript事件串连执行多个处理过程的方法
- 技术干货 | 六分钟学会使用 HBuilder 引入构建 mPaaS 小程序
- Tomcat调优技巧
- 借《鱿鱼游戏》带动Q3财报走出水逆,奈飞的王者回归并非意外
热门文章
- JAVA智慧防疫上报系统服务端计算机毕业设计Mybatis+系统+数据库+调试部署
- CES Asia 2016落下帷幕,VR展台看点大盘点
- 2.Unity2D 横版 帧动画sprite animation+动画状态机animator+丝滑连击动作
- flv.js 插件 完成 flv 格式的视频播放
- unity给头发添加物理_unity3d Hair real time rendering 真实头发实时渲染
- 趣谈网络协议 - 第16讲 | 流媒体协议:如何在直播里看到美女帅哥?
- javascript笔记总结篇(全集合)
- 计算机断电后黑屏怎么办,如何解决win7系统电脑开机后断电黑屏的故障
- 秋实大哥与线段树 UESTC - 1073
- 进击的 JAMStack