この記事では主に PHP ブリッジモードの詳細な説明と事例を紹介します。興味のある方はぜひ参考にしてください。
ブリッジモード(Bridge)は、抽象部分と実装部分を分離し、独立して変更できるようにするオブジェクト構造モードです。
要約すると、複数の次元において、それぞれの変更は相互に影響を与えず、ブリッジングを通じて特定の関連付けが確立され、このモデルは比較的高い柔軟性を備えています。
ピーマンと細切り豚丼、ポテトと牛丼など、色々な具材が入った丼ものを食べるのと同じです。
主食:ご飯、麺類。
補助食品: ピーマンの細切り豚肉、ジャガイモ、牛肉。
主食と補完食は 2 つの異なる次元であり、それぞれ種類を追加し続けることができます。たとえば、補完食にはネギや卵などを追加したり、相互に組み合わせることができます。
次のようにコードを記録します:
/** * Created by Sublime. * User: Ryan * Date: 2018/1/22 * File:Bridge.php */ /** 抽象一个主食类 * abstract Food */ abstract Class Food { public $dishes; // 一开始会赋值对象 abstract function MakeFood(); } /** 盖浇饭类 继承主食类 * Rice */ Class Rice extends Food { function MakeFood() { $this->dishes->MakeDishes(); echo "盖浇饭<br/>"; } } /** 盖浇面类 继承主食类 * Noodle */ Class Noodle extends Food { function MakeFood() { $this->dishes->MakeDishes(); echo "盖浇面<br/>"; } } /** 菜肴接口 * interface Dishes */ interface Dishes { function MakeDishes(); } /** 青椒肉丝类 继承菜肴接口 * QJRS */ Class QJRS implements Dishes { function MakeDishes(){ echo "青椒肉丝"; } } /** 土豆牛肉类 继承菜肴接口 * TDNR */ Class TDNR implements Dishes { function MakeDishes(){ echo "土豆牛肉"; } }
<?php // 桥接模式 index.php header("Content-Type:text/html;charset=utf-8"); require_once "Bridge.php"; // 要一份盖浇饭 $rice = new Rice(); // 浇头要 青椒肉丝 $rice->dishes = new QJRS(); // 上菜 $rice->MakeFood(); // 同样的要一份盖浇饭 $rice = new Rice(); // 这次改了浇头要 土豆牛肉 $rice->dishes = new TDNR(); // 上菜 $rice->MakeFood();
出力結果:
ピーマン細切り豚丼
ポテト牛丼
関連推奨事項:
JavaScriptデザインパターンシリーズ6 : ブリッジモード
以上がPHPブリッジモードの詳しい説明と事例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。