门面模式php,门面模式 php

门面模式 php

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

class Camera{

public function turnOn(){

var_dump("开");

}

public function turnOff(){

var_dump("关");

}

public function rotate($degrees){}

}

class Light{

public function turnOn(){

var_dump("开");

}

public function turnOff(){

var_dump("关");

}

public function changeBulb(){}

}

class Sensor{

public function activate(){}

// diːˈæktɪveɪt 停用

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->alarm->activate();

$this->alarm->activate();

}

public  function deactivate() {

$this->camera1->turnOff();

$this->camera2->turnOff();

$this->light1->turnOff();

$this->light2->turnOff();

$this->light3->turnOff();

$this->alarm->deactivate();

$this->alarm->deactivate();

}

}

$securityObj = new SecurityFacade();

$securityObj->activate();

$securityObj->deactivate();

//string(3) "开"

//string(3) "开"

//string(3) "开"

//string(3) "开"

//string(3) "开"

//string(3) "关"

//string(3) "关"

//string(3) "关"

//string(3) "关"

//string(3) "关"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值