php设计模式 Facade(外观模式)
2015-01-24信息快讯网
为子系统中的一组接口提供一个一致的界面,定义一个高层接口,使得这一子系统更加的容易使用
模式定义:外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。模式结构:
外观模式的就是让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单例模式实现(对象只被创建一次)
asp.net 组合模式的一个例子
php模拟js函数unescape的函数代码
PHP面向对象学习笔记之二 生成对象的设计模式
三个类概括PHP的五种设计模式
PHP中“简单工厂模式”实例代码讲解
apache+codeigniter 通过.htcaccess做动态二级域名解析
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
初品cakephp 入门基础
PHP中call_user_func_array()函数的用法演示
php设计模式 Delegation(委托模式)
php设计模式 Factory(工厂模式)
php设计模式 Interpreter(解释器模式)
php设计模式 Strategy(策略模式)
php设计模式 Observer(观察者模式)
php设计模式 Singleton(单例模式)
php的memcached客户端memcached
PHP模块 Memcached功能多于Memcache
php模块memcache和memcached区别分析
批量获取memcache值并按key的顺序返回的实现代码
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()'d code error
沙美大楼被遗忘十多年外观保存较好内部搬空
奥迪新Q5路试的谍照首曝 外观依旧饱满
外观差异不大 野马5.0L GT国内谍照曝光
曝宝马M4 Coupe灰色版 法拉利同款外观