>  기사  >  백엔드 개발  >  PHP 디자인 패턴의 Facade(외형 모드) 소개

PHP 디자인 패턴의 Facade(외형 모드) 소개

怪我咯
怪我咯원래의
2017-07-13 10:19:581248검색

하위 시스템의 인터페이스 집합에 대해 일관된 인터페이스를 제공하고 이 하위 시스템을 더 쉽게 사용할 수 있도록 상위 수준 인터페이스를 정의합니다.

패턴 정의: 외관 패턴(외관 패턴): 외부 통신 하위 시스템과의 작업은 통합된 모양 객체 을 통해 수행되어야 하며 하위 시스템의 인터페이스 집합에 대한 일관된 인터페이스를 제공해야 합니다. 모양 패턴은 이 하위 시스템을 더 쉽게 사용할 수 있도록 하는 상위 수준 인터페이스를 정의합니다. Appearance 모드는 객체 구조 모드인 Facade 모드라고도 합니다.
모드 구조:

외형 모드는 클라이언트가 한 가지 작업을 완료하기 위해 간단한 방법으로 더 복잡한 시스템을 호출할 수 있도록 하는 것입니다.

외관 모드, 외관 모드라고도 합니다. 주로 여러 하위 시스템 간의 중간 계층으로 사용됩니다. 사용자는 Facade 객체를 통해 직접 작업을 요청하므로 여러 하위 시스템을 호출하는 복잡한 작업이 필요하지 않습니다.

출현 모드의 일반적인 예는 많은 주식을 샀지만 시간이 제한되어 있다는 것입니다. 추적이 복잡해서 엉망이 되었습니다. 그래서 우리는 단순히 주식형 펀드를 샀습니다. 주식형 펀드는 외관 모델의 Facade 객체와 같으며, 하위 시스템은 주식형 펀드가 투자한 각 주식입니다.

코드는 다음과 같습니다.

class car { 
public function start() { 
print_r("车子启动"); 
} 
public function check_stop() { 
print_r("刹车检查正常"); 
} 
public function check_box() { 
print_r("检查油箱正常"); 
} 
public function check_console() { 
print_r("检查仪表盘是否异常"); 
} 
} 

//facade模式 
class carfacade { 
public function catgo(car $carref){ 
$carref->check_stop(); 
$carref->check_box(); 
$carref->check_console(); 
$carref->start(); 
} 
} 
//客户端可以简单的去调用。 
$car = new car(); 
$carObj = new carfacade(); 
$carObj->catgo($car);

코드는 다음과 같습니다.

<?php 
/** 
* 外观模式 示例 
* 
* 为子系统中的一组接口提供一个一致的界面,定义一个高层接口,使得这一子系统更加的容易使用 
*/ 
class SubSytem1 
{ 
public function Method1() 
{ 
echo "subsystem1 method1<br/>"; 
} 
} 

class SubSytem2 
{ 
public function Method2() 
{ 
echo "subsystem2 method2<br/>"; 
} 
} 

class SubSytem3 
{ 
public function Method3() 
{ 
echo "subsystem3 method3<br/>"; 
} 
} 

class Facade 
{ 
private $_object1 = null; 
private $_object2 = null; 
private $_object3 = null; 

public function construct() 
{ 
$this->_object1 = new SubSytem1(); 
$this->_object2 = new SubSytem2(); 
$this->_object3 = new SubSytem3(); 
} 

public function MethodA() { 
echo "Facade MethodA<br/>"; 
$this->_object1->Method1(); 
$this->_object2->Method2(); 
} 

public function MethodB() { 
echo "Facade MethodB<br/>"; 
$this->_object2->Method2(); 
$this->_object3->Method3(); 
} 
} 

// 实例化 
$objFacade = new Facade(); 

$objFacade->MethodA(); 
$objFacade->MethodB();

위 내용은 PHP 디자인 패턴의 Facade(외형 모드) 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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