复制代 代码如下:
/**
* ブリッジモード
*
* 抽象部分を実装部分から分離し、それらを使用して独立した変更を加えます
*/
抽象クラス 実装者
{
抽象パブリック関数の操作();
}
class ConcreteImplementorA extends Implementor
{
public functionoperation()
{
echo "ConcreteImplementorA Operation
";
}
}
class ConcreteImplementorB extends Implementor
{
public functionoperation()
{
echo "ConcreteImplementorB Operation
";
}
}
クラス抽象化
{
protected $_implementor = null;
パブリック関数 setImplementor($implementor)
{
$this->implementor = $implementor;
}
パブリック関数operation()
{
$this->_implementor->operation();
}
}
class RefinedAbstraction extends Abstraction
{
}
class ExampleAbstraction extends Abstraction
{
}
//
$objRAbstraction = new洗練された抽象化();
$objRAbstraction->setImplementor(new ConcreteImplementorB());
$objRAbstraction->operation();
$objRAbstraction->setImplementor(new ConcreteImplementorA());
$objRAbstraction->operation();
$objEAbstraction = 新しい ExampleAbstraction();
$objEAbstraction->setImplementor(new ConcreteImplementorB());
$objEAbstraction->operation();