說明
1.將兩個原本不相關的類別結合在一起,然後利用兩個類別中的方法和屬性,輸出一份新的結果。
2.結構分為抽象類別、被提煉的抽象類別、實作類別、具體實作類別和客戶端程式碼。
實例
/** * 顏色抽象類別 * Class Colour */ abstract class Colour { /** * @return mixed */ abstract public function run(); } /** * 黑色 * Class Black */ class Black extends Colour { public function run() { // TODO: Implement run() method. return '黑色'; } } /** * 白色 * Class White */ class White extends Colour { public function run() { // TODO: Implement run() method. return '白色'; } } /** * 紅色 * Class Red */ class Red extends Colour { public function run() { // TODO: Implement run() method. return '紅色'; } } /** * 形狀抽象類別 * Class Shape */ abstract class Shape { /** * 顏色 * @var Colour */ protected $colour; /** * Shape constructor. * @param Colour $colour */ public function __construct(Colour $colour) { $this->colour = $colour; } /** * @return mixed */ abstract public function operation(); } /** * 圓形 * Class Round */ class Round extends Shape { /** * @return mixed|void */ public function operation() { // TODO: Implement operation() method. echo $this->colour->run() . '圓形<br>'; } } /** * 長方形 * Class Rectangle */ class Rectangle extends Shape { /** * @return mixed|void */ public function operation() { // TODO: Implement operation() method. echo $this->colour->run() . '長方形<br>'; } } /** * 正方形 * Class Square */ class Square extends Shape { /** * @return mixed|void */ public function operation() { // TODO: Implement operation() method. echo $this->colour->run() . '正方形<br>'; } } // 客戶端程式碼// 白色圓形$whiteRound = new Round(new White()); $whiteRound->operation(); // 黑色正方形$blackSquare = new Square(new Black()); $blackSquare->operation(); // 紅色長方形$redRectangle = new Rectangle(new Red()); $redRectangle->operation(); // 運行結果白色圓形黑色正方形紅色長方形
以上就是php橋接模式的介紹,希望對大家有幫助。