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 相关文章推荐
玩转虚拟域名◎+ .
Oct 09 PHP
PHP新手上路(九)
Oct 09 PHP
php zlib压缩和解压缩swf文件的代码
Dec 30 PHP
PHP函数preg_match_all正则表达式的基本使用详细解析
Aug 31 PHP
PHP基于CURL进行POST数据上传实例
Nov 10 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 PHP
php 无限级分类 获取顶级分类ID
Mar 13 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
Yii2下session跨域名共存的解决方案
Feb 04 PHP
php四种定界符详解
Feb 16 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
浅谈Laravel模板实体转义带来的坑
Oct 22 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
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
Jquery实现页面加载时弹出对话框代码
2013/04/19 Javascript
封装了jQuery的Ajax请求全局配置
2015/02/05 Javascript
jQuery对象初始化的传参方式
2015/02/26 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
使用typescript开发angular模块并发布npm包
2018/04/19 Javascript
JavaScript中为事件指定处理程序的五种方式分析
2018/07/27 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
python数据抓取分析的示例代码(python + mongodb)
2017/12/25 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
Python学习笔记之列表推导式实例分析
2019/08/13 Python
Python 下载及安装详细步骤
2019/11/04 Python
Python如何将函数值赋给变量
2020/04/28 Python
python实现批处理文件
2020/07/28 Python
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
优秀毕业生事迹材料
2014/02/12 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
小学中队活动总结
2015/05/11 职场文书
公司员工辞职信范文
2015/05/12 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
2016简历自荐信优秀范文
2016/01/29 职场文书
Vue-Element-Admin集成自己的接口实现登录跳转
2021/06/23 Vue.js
MySQL系列之三 基础篇
2021/07/02 MySQL
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL