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实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
PHP数据库链接类(PDO+Access)实例分享
Dec 05 PHP
php使用GeoIP库实例
Jun 27 PHP
php采用ajax数据提交post与post常见方法总结
Nov 10 PHP
PHP使用mysql_fetch_row查询获得数据行列表的方法
Mar 18 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
Yii2增加验证码步骤详解
Apr 25 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
PHP面向对象程序设计之构造方法和析构方法详解
Jun 13 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
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
jQuery Pagination Ajax分页插件(分页切换时无刷新与延迟)中文翻译版
2013/01/11 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
JS实现可拖曳、可关闭的弹窗效果
2015/09/26 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
最通俗易懂的javascript变量提升详解
2017/08/05 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
JS中超越现实的匿名函数用法实例分析
2019/06/21 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
微信小程序(订阅消息)功能
2019/10/25 Javascript
Js实现复选框的全选、全不选反选功能代码实例
2020/02/28 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
[06:16]第十四期-国士无双绝地翻盘之撼地神牛
2014/06/24 DOTA
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python的subprocess模块总结
2014/11/07 Python
Python基于time模块求程序运行时间的方法
2017/09/18 Python
Python实现学校管理系统
2018/01/11 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
实例讲解python中的协程
2018/10/08 Python
python中嵌套函数的实操步骤
2019/02/27 Python
keras多显卡训练方式
2020/06/10 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
超市创业计划书
2014/09/15 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
亲戚关系证明
2015/06/24 职场文书