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下使用SMTP发邮件的代码
Jan 10 PHP
PHP学习散记_编码(json_encode 中文不显示)
Nov 10 PHP
PHP 实现代码复用的一个方法 traits新特性
Feb 22 PHP
php实现的简单检验登陆类
Jun 18 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
Dec 31 PHP
PHP重置数组为连续数字索引的几种方式总结
Mar 12 PHP
PHP chr()函数讲解
Feb 11 PHP
详解PHP PDO简单教程
May 28 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 PHP
php实现对短信验证码发送次数的限制实例讲解
Mar 04 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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 七大优势分析
2009/06/23 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
php遍历数组的4种方法总结
2014/07/05 PHP
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
js中scrollHeight,scrollWidth,scrollLeft,scrolltop等差别介绍
2012/05/16 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
jQuery实现弹出窗口中切换登录与注册表单
2015/06/05 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
js创建数组的简单方法
2016/07/27 Javascript
JavaScript之Vue.js【入门基础】
2016/12/06 Javascript
解决Vue2.x父组件与子组件之间的双向绑定问题
2018/03/06 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
javascript设计模式之装饰者模式
2020/01/30 Javascript
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
浅谈Python中数据解析
2015/05/05 Python
python如何让类支持比较运算
2018/03/20 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python实现扫雷游戏
2020/03/03 Python
windows下Pycharm安装opencv的多种方法
2020/03/05 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
python读取excel数据绘制简单曲线图的完整步骤记录
2020/10/30 Python
Python 列表反转显示的四种方法
2020/11/16 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
应届生财务管理求职信
2013/11/06 职场文书
学生党支部先进事迹
2014/02/04 职场文书
办公室岗位职责
2014/02/12 职场文书
美食节策划方案
2014/05/26 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
Canvas如何做个雪花屏版404的实现
2021/09/25 HTML / CSS