外观模式属于结构型模式
概述:为子系统中的一组接口提供一个一致的界面,此模式定义一个高层接口,这个接口使得这一子系统更加容易使用
外观模式就是让client客户端以一种简单的方式来调用比较复杂的系统来完成一件事情;
目的:
1. 为一个复杂子系统提供简单的接口
2. 减少客户端和子系统的耦合
个人举例:
1 购买手抓饼
namespace haibao\design\web\view\design;
use haibao\design\web\common\design\adapter\Translator;
class Facade extends \haibao\design\web\view\Base{
protected function preRender(){
header("Content-type: text/html; charset=utf-8");
$facade = new \haibao\design\web\common\design\facade\Facade();
$facade->facade1();
echo '
$facade->facade2();
}
}
/**
* 老板娘 手抓饼
*/
namespace haibao\design\web\common\design\facade;
class Facade{
public $object1;
public $object2;
public $object3;
public function __construct(){
$this->object1 = new SubSystem1;// 饼
$this->object2 = new SubSystem2; // 刷将
$this->object3 = new SubSystem3; // 加个肠
}
public function facade1(){
$this->object1->getMessage();
$this->object2->getMessage();
}
public function facade2(){
$this->object2->getMessage();
$this->object3->getMessage();
}
}
/**
* 子类
*/
namespace haibao\design\web\common\design\facade;
class SubSystem1{
public function getMessage(){
echo '子系统1';
}
}
/**
* 子类
*/
namespace haibao\design\web\common\design\facade;
class SubSystem2{
public function getMessage(){
echo '子系统2';
}
}
/**
* 子类
*/
namespace haibao\design\web\common\design\facade;
class SubSystem3{
public function getMessage(){
echo '子系统3';
}
}