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

yipeiwu_com7年前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();

相关文章

Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法

本文实例讲述了Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法。分享给大家供大家参考,具体如下: 1、首先安装memcac...

php mssql 日期出现中文字符的解决方法

比如:2005-12-23 读出以后页面会显示为:2005 十二月 23 ,这样给程序处理带来很多不便。查找了一些资料发现是php.ini默认了日期处理功能。 解决方法为: 第一个方法:...

openPNE常用方法分享

复制代码 代码如下: <?php include_partial('sidemenu',array('form'=>'asdfgasgsad'));?>这句话意思是包含...

php判断类是否存在函数class_exists用法分析

本文实例分析了php判断类是否存在函数class_exists用法。分享给大家供大家参考。具体如下: 如果我们要判断一个类是不是可以用,可以先使用class_exists函数来判断一下,...

php实现用于验证所有类型的信用卡类

本文实例讲述了php实现用于验证所有类型的信用卡类。分享给大家供大家参考。具体如下: 这个php类比较完整,可以用于验证各种不同的信用卡,针对信用卡的卡号的通用规则进行了验证,同时对不同...