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

时间:2022-09-05 22:05:06

代码如下:


<?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();