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 工厂模式使用方法

基本的工厂类 复制代码 代码如下: class MyObject{ //对象将从工厂返回 } class MyFactory{ public static function factor...

php运行时动态创建函数的方法

本文实例讲述了php运行时动态创建函数的方法。分享给大家供大家参考。具体分析如下: 一般的语言函数必须定义了在运行,而php支持在运行时动态创建函数,下面是一个简单的范例,在运动时根据不...

PHP递归算法的详细示例分析

我们在建设一个网站的时候,程序员们首选的当属PHP语言。我们对PHP还是比较熟悉的,接下来我们将会为大家介绍一下PHP递归算法。PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PH...

攻克CakePHP系列三 表单数据增删改

攻克CakePHP系列三 表单数据增删改

这里声明一点,上例中不小心把数据库表中lastupd字段错打成lastudp,本例子予以更正。 除上诉字段数据库与上例一致。 工程仍沿用上例,如下图: 代码依次为: database....

php/JS实现的生成随机密码(验证码)功能示例

本文实例讲述了php/JS实现的生成随机密码(验证码)功能。分享给大家供大家参考,具体如下: PHP写法: //A-Z a-z 0-9 !#$%^&* $str = "ABCDEFG...