zoukankan      html  css  js  c++  java
  • PHP设计模式

    门面模式 (Facade)又称外观模式,用于为子系统中的一组接口提供一个一致的界面。门面模式定义了一个高层接口,这个接口使得子系统更加容易使用:引入门面角色之后,用户只需要直接与门面角色交互,用户与子系统之间的复杂关系由门面角色来实现,从而降低了系统的耦

    <?php
    class Camera {
        public function turnOn() {}
        public function turnOff() {}
        public function rotate($degrees) {}
    }
    
    class Light {
        public function turnOn() {}
        public function turnOff() {}
        public function changeBulb() {}
    }
    
    class Sensor {
        public function activate() {}
        public function deactivate() {}
        public function trigger() {}
    }
    
    class Alarm {
        public function activate() {}
        public function deactivate() {}
        public function ring() {}
        public function stopRing() {}
    }
    
    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();
    
  • 相关阅读:
    mapreduce 函数入门 二
    mapreduce 函数入门 一
    Flume+Kafka+Storm+Redis 大数据在线实时分析
    mapReduce 大数据离线分析
    docker 简介
    flume安装使用+根据数据源分类
    hiho 171周
    如何新建一个空的optix工程
    读 Real-Time Rendering 收获
    hiho 1590
  • 原文地址:https://www.cnblogs.com/taozi32/p/9226751.html
Copyright © 2011-2022 走看看