您的当前位置:首页>全部文章>文章详情

php设计模式之门面模式(Facade)

发表于:2019-08-16 10:29:30浏览:56次TAG:
又称外观模式,用于为子系统中的一组接口提供一个一致的界面。门面模式定义了一个高层接口,这个接口使得子系统更加容易使用:引入门面角色之后,用户只需要直接与门面角色交互,用户与子系统之间的复杂关系由门面角色来实现,从而降低了系统的耦。 ```php 开启"); } // 关闭 public function turnOff() { var_dump("照相机 > 关闭"); } // 旋转 public function rotate($degrees) { var_dump("照相机 > 旋转"); } } // 灯光 class Light { // 开启 public function turnOn() { var_dump("灯光 > 开启"); } // 关闭 public function turnOff() { var_dump("灯光 > 关闭"); } // 换灯泡 public function chageBulb() { var_dump("灯光 > 换灯泡"); } } // 传感器 class Sensor { // 激活 public function activate() { var_dump("传感器 > 激活"); } // 关闭 public function deactivate() { var_dump("传感器 > 关闭"); } // 触发 public function trigger() { var_dump("传感器 > 触发"); } } // 铃声 class Alarm { // 激活 public function activate() { var_dump("铃声 > 激活"); } // 关闭 public function deactivate() { var_dump("铃声 > 关闭"); } // 响 public function ring() { var_dump("铃声 > 响"); } // 停止响 public function stopRing() { var_dump("铃声 > 停止响"); } } // 安全门面 class SecurityFacade { private $_camera1, $_camera2; private $_light1, $_light2, $_light3; private $_sensor; private $_alarm; public function __construct() { $this->_camera1 = new Camera(); $this->_camera2 = new Camera(); $this->_light1 = new Light(); $this->_light2 = new Light(); $this->_light3 = new Light(); $this->_sensor = new Sensor(); $this->_alarm = new Alarm(); } public function activate() { $this->_camera1->turnOn(); $this->_camera2->turnOn(); $this->_light1->turnOn(); $this->_light2->turnOn(); $this->_light3->turnOn(); $this->_sensor->activate(); $this->_alarm->activate(); } public function deactivate() { $this->_camera1->turnOff(); $this->_camera2->turnOff(); $this->_light1->turnOff(); $this->_light2->turnOff(); $this->_light3->turnOff(); $this->_sensor->deactivate(); $this->_alarm->deactivate(); } } // client $security = new SecurityFacade(); $security->activate(); ?> ``` 输出 ```bash vagrant@vagrant-ubuntu:~$ sudo php facade.php string(18) "照相机 > 开启" string(18) "照相机 > 开启" string(15) "灯光 > 开启" string(15) "灯光 > 开启" string(15) "灯光 > 开启" string(18) "传感器 > 激活" string(15) "铃声 > 激活" ```
栏目分类全部>
腾讯云采购季云服务器一折促销