php设计模式 Bridge (桥接模式)


Posted in PHP onJune 26, 2011
<?php 
/** 
* 桥接模式 
* 
* 将抽象部份与它实现部分分离,使用它们都可以有独立的变化 
*/ 
abstract class Implementor 
{ 
abstract public function operation(); 
} 
class ConcreteImplementorA extends Implementor 
{ 
public function operation() 
{ 
echo "ConcreteImplementorA Operation<br/>"; 
} 
} 
class ConcreteImplementorB extends Implementor 
{ 
public function operation() 
{ 
echo "ConcreteImplementorB Operation<br/>"; 
} 
} 
class Abstraction 
{ 
protected $_implementor = null; 
public function setImplementor($implementor) 
{ 
$this->_implementor = $implementor; 
} 
public function operation() 
{ 
$this->_implementor->operation(); 
} 
} 
class RefinedAbstraction extends Abstraction 
{ 
} 
class ExampleAbstraction extends Abstraction 
{ 
} 
// 
$objRAbstraction = new RefinedAbstraction(); 
$objRAbstraction->setImplementor(new ConcreteImplementorB()); 
$objRAbstraction->operation(); 
$objRAbstraction->setImplementor(new ConcreteImplementorA()); 
$objRAbstraction->operation(); 
$objEAbstraction = new ExampleAbstraction(); 
$objEAbstraction->setImplementor(new ConcreteImplementorB()); 
$objEAbstraction->operation();
PHP 相关文章推荐
PHP动态变静态原理
Nov 25 PHP
PHP中ADODB类详解
Mar 25 PHP
php输出echo、print、print_r、printf、sprintf、var_dump的区别比较
Jun 21 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
Jul 28 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
PHP中Array相关函数简介
Jul 03 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
php批量删除操作(数据访问)
May 23 PHP
PHP多种序列化/反序列化的方法详解
Jun 23 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
PHP项目多语言配置平台实现过程解析
May 18 PHP
php实现微信和支付宝支付的示例代码
Aug 11 PHP
php设计模式 Chain Of Responsibility (职责链模式)
Jun 26 #PHP
php设计模式 FlyWeight (享元模式)
Jun 26 #PHP
php设计模式 Mediator (中介者模式)
Jun 26 #PHP
php设计模式 Prototype (原型模式)代码
Jun 26 #PHP
PHP如何解决网站大流量与高并发的问题
Jun 25 #PHP
session在PHP大型web应用中的使用
Jun 25 #PHP
php URL跳转代码 减少外链
Jun 25 #PHP
You might like
ajax缓存问题解决途径
2006/12/06 PHP
php error_log 函数的使用
2009/04/13 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
跟我学Laravel之安装Laravel
2014/10/15 PHP
微信API接口大全
2015/04/15 PHP
解决nginx不支持thinkphp中pathinfo的问题
2015/07/21 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
(function($){...})(jQuery)的意思
2010/07/22 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
2013/01/02 Javascript
jQuery获取iframe的document对象的方法
2014/10/10 Javascript
有关JavaScript中call()和apply() 的一些理解
2016/05/20 Javascript
Javascript中 带名 匿名 箭头函数的重要区别(推荐)
2017/01/29 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
javaScript产生随机数的用法小结
2018/04/21 Javascript
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
2018/12/03 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
layui实现数据表格隐藏列的示例
2019/10/25 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
使用Python内置的模块与函数进行不同进制的数的转换
2016/03/12 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
python 找出list中最大或者最小几个数的索引方法
2018/10/30 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
Python字符串三种格式化输出
2020/09/17 Python
英国版MAC彩妆品牌:Illamasqua
2018/04/18 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
怎样写离婚协议书
2014/09/10 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书