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学习之PHP变量
Oct 09 PHP
PHP+javascript液晶时钟
Oct 09 PHP
PHP 模板高级篇总结
Dec 21 PHP
PHP 数据库树的遍历方法
Feb 06 PHP
一些php技巧与注意事项分析
Feb 03 PHP
php数组中删除元素之重新索引的方法
Sep 16 PHP
Mac环境下php操作mysql数据库的方法分享
May 11 PHP
PHP访问数据库集群的方法小结
Mar 14 PHP
手把手编写PHP框架 深入了解MVC运行流程
Sep 19 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
Sep 04 PHP
PDO::beginTransaction讲解
Jan 27 PHP
laravel配置Redis多个库的实现方法
Apr 10 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
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
PHP 验证身份证是否合法的函数
2017/02/09 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
JavaScript中的排序算法代码
2011/02/22 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
js实现菜单跳转效果
2020/12/11 Javascript
php使用递归与迭代实现快速排序示例
2014/01/23 Python
Python 时间操作例子和时间格式化参数小结
2014/04/24 Python
在Django的通用视图中处理Context的方法
2015/07/21 Python
Python实现的文本编辑器功能示例
2017/06/30 Python
python实现批量视频分帧、保存视频帧
2019/05/31 Python
Pandas分组与排序的实现
2019/07/23 Python
在python中用url_for构造URL的方法
2019/07/25 Python
tensorflow 分类损失函数使用小记
2020/02/18 Python
CSS3 实现穿梭星空动画
2020/11/13 HTML / CSS
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
行政助理工作职责范本
2014/03/04 职场文书
施工安全责任书
2014/04/14 职场文书
小学课外阅读总结
2014/07/09 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
想要创业,那么你做好准备了吗?
2019/07/01 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python
Python面向对象编程之类的概念
2021/11/01 Python