php设计模式 Facade(外观模式)
2015-01-24信息快讯网
为子系统中的一组接口提供一个一致的界面,定义一个高层接口,使得这一子系统更加的容易使用
模式定义:外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。模式结构:
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灰色版 法拉利同款外观