您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
php的门面设计模式
发布时间:2021-04-05 15:53:15编辑:雪饮阅读()
这里模拟一个照相的传统流程实现
<?php
class Light{
function turnOn(){
echo "打开闪光灯<br/>";
}
function turnOff(){
echo "关闭闪光灯<br/>";
}
}
class Camera{
function activite(){
echo '打开照相机<br/>';
}
function deactivite(){
echo "关闭照相机";
}
}
//一般的照相流程:
//照相:打开闪光灯、打开照相机
//关闭照相:关闭闪光灯、关闭照相机
echo "------用传统方式实现照相机的照相及关闭照相--------";
$light=new Light();
$camera=new Camera();
echo "------开启照相机进行照相--------";
$light->turnOn();
$camera->activite();
echo "------停止照相关闭照相机--------";
$light->turnOff();
$camera->deactivite();
?>
可以看到对于调用照相的人来说比较繁琐。
那么这里再来看看使用焖面设计模式如何实现
<?php
class Light{
function turnOn(){
echo "打开闪光灯<br/>";
}
function turnOff(){
echo "关闭闪光灯<br/>";
}
}
class Camera{
function activite(){
echo '打开照相机<br/>';
}
function deactivite(){
echo "关闭照相机";
}
}
class Facade{
protected $light;
protected $camera;
function __construct(){
$this->light=new Light();
$this->camera=new Camera();
}
function start(){
$this->light->turnOn();
$this->camera->activite();
}
function stop(){
$this->light->turnOff();
$this->camera->deactivite();
}
}
//一般的照相流程:
//照相:打开闪光灯、打开照相机
//关闭照相:关闭闪光灯、关闭照相机
echo "------用传统方式实现照相机的照相及关闭照相--------";
$facade=new Facade();
//照相
$facade->start();
//关闭照相
$facade->stop();
?>
可见门面设计模式只不过是对外部进行了进一步的封装,减少调用者对子系统的调用,减少了客户对子系统的耦合度。使得客户不需要知道子系统的实现细节。其实这种设计模式可能大家也经常使用,只不过不知道这种场景叫做门面设计模式而已。
关键字词:php,门面,设计模式