>백엔드 개발 >PHP 튜토리얼 >PHP 디자인 패턴 브리지 모드

PHP 디자인 패턴 브리지 모드

不言
不言원래의
2018-04-18 11:53:001764검색

이 기사에서는 특정 참조 가치가 있는 PHP 디자인 패턴의 브리지 모드를 소개합니다. 이제 모든 사람과 공유합니다. 필요한 친구가 참조할 수 있습니다.

브리지 모드(Bridge) 는 객체 구조 유형 패턴 별도의 추상입니다. 구현 부분의 부분을 독립적으로 변경할 수 있습니다.
요약하자면, 다차원에서는 각각의 변화가 서로 영향을 미치지 않으며, 브리징을 통해 특정 연관이 형성되고, 동적 결합이 상대적으로 높은 모델입니다.

마치 풋고추와 다진 돼지고기 덮밥, 감자와 쇠고기 덮밥 등 다양한 요리와 함께 덮밥을 먹을 때와 같습니다.

주식: 밥, 국수.
보충식품: 풋고추 다진 돼지고기, 감자, 쇠고기.

주식과 보완식품은 차원이 다르며 각각 계속해서 유형을 추가할 수 있습니다. 예를 들어 보완식품에는 부추, 계란 등을 추가할 수 있고 서로 결합될 수 있습니다.

녹음 코드는 다음과 같습니다.

       
    /** 抽象一个主食类      
 *  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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.