PHPデザインパターンブリッジモード

不言
リリース: 2023-03-24 10:02:02
オリジナル
1725 人が閲覧しました

この記事では、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デザインパターンブリッジモードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート