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中使用Oracle数据库(6)
Oct 09 PHP
php你的验证码安全码?
Jan 02 PHP
PHP 分页类(模仿google)-面试题目解答
Sep 13 PHP
PHP对象Object的概念 介绍
Jun 14 PHP
php empty()与isset()区别的详细介绍
Jun 17 PHP
通过table标签,PHP输出EXCEL的实现方法
Jul 24 PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 PHP
php使用get_class_methods()函数获取分类的方法
Jul 20 PHP
PHP简单字符串过滤方法示例
Sep 04 PHP
php 截取utf-8格式的字符串实例代码
Oct 30 PHP
php使用变量动态创建类的对象用法示例
Feb 06 PHP
利用php生成验证码
Feb 23 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中extract()函数的定义和用法
2012/08/17 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
PHP 闭包详解及实例代码
2016/09/28 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
HTML长文本截取含有HTML代码同样适用的两种方法
2013/07/31 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
JS拖拽组件学习使用
2016/01/19 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
微信小程序实现收货地址左滑删除
2020/11/18 Javascript
如何在postman测试用例中实现断言过程解析
2020/07/09 Javascript
js实现列表按字母排序
2020/08/11 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
[01:38]完美世界DOTA2联赛PWL S3 集锦第四期
2020/12/21 DOTA
python3使用SMTP发送简单文本邮件
2018/06/19 Python
在Pycharm中将pyinstaller加入External Tools的方法
2019/01/16 Python
python无序链表删除重复项的方法
2020/01/17 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
2020/03/12 Python
Pytorch转keras的有效方法,以FlowNet为例讲解
2020/05/26 Python
浅谈Python3中print函数的换行
2020/08/05 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
北美领先的牛仔品牌:Buffalo David Bitton
2017/05/22 全球购物
Skyscanner台湾:全球知名的旅行比价引擎
2018/07/01 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
汽车技术服务英文求职信范文
2014/01/02 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
golang内置函数len的小技巧
2021/07/25 Golang
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL
python使用shell脚本创建kafka连接器
2022/04/29 Python