php设计模式 Bridge (桥接模式)

yipeiwu_com6年前PHP代码库
复制代码 代码如下:

<?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运行出现Call to undefined function curl_init()的解决方法

在网上下载了一个模拟登陆discuz论坛的php程序范例,试运行时出现“Call to undefined function curl_init”这个错误提示,没有定义的函数,也就是ph...

解析 thinkphp 框架中的部分方法

 1 thinkphp 框架 中判断输入的数值和数据库中的数值是否一致    首先 需要在view文件夹下建一个模板 名为zhuce.html <...

PHP实现过滤掉非汉字字符只保留中文字符

<?php $str = "a 1b 2b<中文>。xxyy字符"; //转换 GB2312 -> UTF-8 $str = mb_convert_encod...

php var_export与var_dump 输出的不同

问题发现在跟踪yratings_get_targets的时候,error_log(var_export(yblog_mspconfiginit("ratings"),true));老是打...

php仿discuz分页效果代码

php仿discuz分页效果代码

复制代码 代码如下:/** * 显示样式2 */ function multi($mpurl,$page = 10) { $multipage = ''; $mpurl .= strpo...