この記事では、PHP のデザイン パターンのブリッジ モードを紹介します。必要な方は参考にしてください。抽象部分を実装部分から分離して、独立して変更できるようにします。
要約すると、複数の次元において、それぞれの変更は相互に影響を与えず、ブリッジングによって特定の関連付けが確立され、動的結合が実行されます。このモデルは比較的高い柔軟性を持っています。
ピーマンと豚細切り丼、ポテトと牛丼など、色々な具材が入った丼を食べるときと同じです。
主食:ご飯、麺類。
主食と補完食は 2 つの異なる次元であり、それぞれが種類を追加し続けることができます。たとえば、補完食にはネギや卵などを追加したり、相互に組み合わせることができます。 記録コードは以下の通りです:
/** 抽象一个主食类 * 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();出力結果:
ピーマンと細切り豚丼
ポテト牛丼
関連おすすめ:
PHPデザインパターンのビルダーパターンPHPデザインパターンのプロトタイプパターン
以上がPHPデザインパターンブリッジモードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。