时间:2021-07-01 10:21:17 帮助过:44人阅读
模式定义:外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。
模式结构:
外观模式的就是让client客户端以一种简单的方式来调用比较复杂的系统,来完成一件事情。
外观模式,也叫门面模式。它多用于在多个子系统之间,作为中间层。用户通过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(外观模式)介绍的详细内容,更多请关注Gxl网其它相关文章!