php设计模式 Facade(外观模式)


Posted in PHP onJune 26, 2011

模式定义:外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。
模式结构:

php设计模式 Facade(外观模式)

外观模式的就是让client客户端以一种简单的方式来调用比较复杂的系统,来完成一件事情。

Subsystem:

class car { 
public function start() { 
print_r("车子启动"); 
} 
public function check_stop() { 
print_r("刹车检查正常"); 
} 
public function check_box() { 
print_r("检查油箱正常"); 
} 
public function check_console() { 
print_r("检查仪表盘是否异常"); 
} 
} //facade模式 
class carfacade { 
public function catgo(car $carref){ 
$carref->check_stop(); 
$carref->check_box(); 
$carref->check_console(); 
$carref->start(); 
} 
} 
//客户端可以简单的去调用。 
$car = new car(); 
$carObj = new carfacade(); 
$carObj->catgo($car);

<?php 
/** 
* 外观模式 示例 
* 
* 为子系统中的一组接口提供一个一致的界面,定义一个高层接口,使得这一子系统更加的容易使用 
*/ 
class SubSytem1 
{ 
public function Method1() 
{ 
echo "subsystem1 method1<br/>"; 
} 
} class SubSytem2 
{ 
public function Method2() 
{ 
echo "subsystem2 method2<br/>"; 
} 
} 
class SubSytem3 
{ 
public function Method3() 
{ 
echo "subsystem3 method3<br/>"; 
} 
} 
class Facade 
{ 
private $_object1 = null; 
private $_object2 = null; 
private $_object3 = null; 
public function __construct() 
{ 
$this->_object1 = new SubSytem1(); 
$this->_object2 = new SubSytem2(); 
$this->_object3 = new SubSytem3(); 
} 
public function MethodA() { 
echo "Facade MethodA<br/>"; 
$this->_object1->Method1(); 
$this->_object2->Method2(); 
} 
public function MethodB() { 
echo "Facade MethodB<br/>"; 
$this->_object2->Method2(); 
$this->_object3->Method3(); 
} 
} 
// 实例化 
$objFacade = new Facade(); 
$objFacade->MethodA(); 
$objFacade->MethodB();
PHP 相关文章推荐
php 异常处理实现代码
Mar 10 PHP
php遍历数组的方法分享
Mar 22 PHP
PHP设置图片文件上传大小的具体实现方法
Oct 11 PHP
PHP获取MySql新增记录ID值的3种方法
Jun 24 PHP
php实现的ping端口函数实例
Nov 12 PHP
推荐5款跨平台的PHP编辑器
Dec 25 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
PHP模板引擎Smarty内置变量调解器用法详解
Apr 11 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
php7 安装yar 生成docker镜像
May 09 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
php设计模式 Factory(工厂模式)
Jun 26 #PHP
php设计模式 Interpreter(解释器模式)
Jun 26 #PHP
php设计模式 Strategy(策略模式)
Jun 26 #PHP
php设计模式 Observer(观察者模式)
Jun 26 #PHP
php设计模式 Singleton(单例模式)
Jun 26 #PHP
php设计模式 Command(命令模式)
Jun 26 #PHP
php设计模式 Template (模板模式)
Jun 26 #PHP
You might like
php获取新浪微博数据API实例
2013/11/12 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
PHP7 弃用功能
2021/03/09 PHP
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
微信小程序Page中data数据操作和函数调用方法
2019/05/08 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
django框架实现模板中获取request 的各种信息示例
2019/07/01 Python
Django之PopUp的具体实现方法
2019/08/31 Python
python文件操作的简单方法总结
2019/11/07 Python
使用tensorboard可视化loss和acc的实例
2020/01/21 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
瑞典首都斯德哥尔摩的多元奢侈时尚品牌:Acne Studios
2017/07/09 全球购物
欧洲最古老的鞋厂:Peter Kaiser
2019/11/05 全球购物
什么时候需要进行强制类型转换
2016/09/03 面试题
实习求职信
2013/12/01 职场文书
最受欢迎的自我评价
2013/12/22 职场文书
员工培训邀请函
2014/02/02 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
2014年电教工作总结
2014/12/19 职场文书
初中重阳节活动总结
2015/05/05 职场文书
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
go开发alertmanger实现钉钉报警
2021/07/16 Golang
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python