Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Designmuster-Bridge-Modus

PHP-Designmuster-Bridge-Modus

不言
不言Original
2018-04-18 11:53:001707Durchsuche

Dieser Artikel stellt den Bridge-Modus des PHP-Entwurfsmusters vor, der einen gewissen Referenzwert hat. Jetzt kann ich ihn mit allen teilen, die ihn brauchen.

Bridge-Modus ist ein Objektstrukturmuster, das den abstrakten Teil vom Implementierungsteil trennt, sodass sie sich unabhängig voneinander ändern können.
Zusammenfassend lässt sich sagen, dass sich ihre jeweiligen Änderungen in mehreren Dimensionen nicht gegenseitig beeinflussen und durch Überbrückung eine gewisse Assoziation für den dynamischen Vergleich der Flexibilität hergestellt wird dieses Modells hoch.

Es ist so, als würden wir eine Reisschüssel zu verschiedenen Gerichten essen, wie zum Beispiel eine Reisschüssel mit grünem Pfeffer und zerkleinertem Schweinefleisch oder eine Reisschüssel mit Kartoffeln und Rindfleisch.

Grundnahrungsmittel: Reis, Nudeln.
Ergänzungsfutter: grüne Paprika, zerkleinertes Schweinefleisch, Kartoffeln und Rindfleisch.

Grundnahrungsmittel und Ergänzungsnahrung sind zwei unterschiedliche Dimensionen, und jede kann weiterhin Arten hinzufügen. Zum Beispiel: Ergänzungsnahrung kann ein weiterer Lauch, ein Ei usw. hinzufügen und mit kombiniert werden gegenseitig.

Der Aufnahmecode lautet wie folgt:

       
    /** 抽象一个主食类      
 *  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();


Ausgabeergebnis:

Reisschüssel mit grünem Pfeffer und zerkleinertem Schweinefleisch
Reisschüssel mit Kartoffelrindfleisch

Verwandte Empfehlungen:

PHP Design Pattern Adapter Pattern

PHP Design Pattern Builder Pattern

PHP Design Pattern Prototype Pattern


Das obige ist der detaillierte Inhalt vonPHP-Designmuster-Bridge-Modus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn