交接模式之類比毛筆
(1) 實作類別介面
interface Color{public function bepaint($penType,$name);}
(2) 具體實現顏色類
class Red implements Color{public function bepaint($penType, $name) {echo $penType.'紅色的'.$name;}}class Green implements Color{public function bepaint($penType, $name) {echo $penType.'綠色的'.$name;}}class Blue implements Color{public function bepaint($penType, $name) {echo $penType.'藍色的'.$name;}}class White implements Color{public function bepaint($penType, $name) {echo $penType.'白色的'.$name;}}class Black implements Color{public function bepaint($penType, $name) {echo $penType.'黑色的'.$name;}}
(3)抽象類別Pen
abstract class Pen {protected $color;public function setColor($Color) {$this->color = $Color;}abstract function draw($name);}
(4) 擴充抽象類別
class BigPen extends Pen{public function draw($name) {$penType = '大號鉛筆繪製';$this->color->bepaint($penType,$name);}}class MiddlePen extends Pen{public function draw($name) {$penType = '中號鉛筆繪製';$this->color->bepaint($penType,$name);}}class SmallPen extends Pen{public function draw($name) {$penType = '小號鉛筆繪製';$this->color->bepaint($penType,$name);}}
(5) 輔助代碼
$string = simplexml_load_file('config.xml');foreach ($string as $v) {eval("\$pen = new {$v->type}();");eval("\$color = new {$v->color}();");$pen->setColor($color);$pen->draw("鮮花");echo "
";}
config.xml
Red BigPen Blue SmallPen
大號鉛筆繪製紅色的鮮花
小號鉛筆繪製藍色的鮮花
以上就介紹了php 橋接模式,包括了方面的內容,希望對PHP教程有興趣的朋友有所協助。