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 相关文章推荐
C# Assembly类访问程序集信息
Jun 13 PHP
连接到txt文本的超链接,不直接打开而是点击后下载的处理方法
Jul 01 PHP
一些 PHP 管理系统程序中的后门
Aug 05 PHP
php随机输出名人名言的代码
Oct 07 PHP
使用 PHPMAILER 发送邮件实例应用
Nov 07 PHP
如何使用Strace调试工具
Jun 03 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
PHP图像处理之使用imagecolorallocate()函数设置颜色例子
Nov 19 PHP
PHP实现正则匹配所有括号中的内容
Jun 22 PHP
Yii框架日志记录Logging操作示例
Jul 12 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
php用户名的密码加密更安全的方法
Jun 21 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将access数据库转换到mysql数据库的方法
2014/12/24 PHP
php根据生日计算年龄的方法
2015/07/13 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
js保存当前路径(cookies记录)
2010/12/14 Javascript
jQuery中使用了document和window哪些属性和方法小结
2011/09/13 Javascript
jquery删除指定的html标签并保留标签内文本内容的方法
2014/04/02 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
标准的js无缝滚动效果
2016/08/30 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
Node.js引入UIBootstrap的方法示例
2018/05/11 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
在JavaScript中实现链式调用的实现
2019/12/24 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
Python sys.argv用法实例
2015/05/28 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
Python编写电话薄实现增删改查功能
2016/05/07 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
使用python实现离散时间傅里叶变换的方法
2019/09/02 Python
如何将 awk 脚本移植到 Python
2019/12/09 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
2020/02/26 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
Django设置Postgresql的操作
2020/05/14 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
高等教育学自荐书范文
2014/02/10 职场文书
致跳远运动员广播稿
2014/02/11 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
信息管理应届生求职信
2014/03/07 职场文书
小学六年级学生评语
2014/04/22 职场文书
节能宣传周活动总结
2014/05/08 职场文书
个性车贴标语
2014/06/24 职场文书
化工专业求职信
2014/07/01 职场文书