定义: 门面模式(有时候也称为外观模式),是提供一个统一的接口去访问多个子系统的多个不同接口,他为子系统的一组接口提供一个统一的高层接口
按照流程写的代码:
<?php
//门面模式实例:打开照相机为例
//两部: 打开闪光灯,打开照相机
// 关闭闪光灯 ,关闭照相机
class Light
{
function turnon()
{
echo "打开闪光灯";
}
function turnoff()
{
echo "关闭闪光灯";
}
}
class Camera
{
function active()
{
echo "打开照相机";
}
function deactive()
{
echo "关闭闪光灯";
}
}
$light = new Light();
$camera = new Camera();
$light->turnon();
$camera->active();
门面模式的代码:
<?php
//门面模式实例:打开照相机为例
//两部: 打开闪光灯,打开照相机
// 关闭闪光灯 ,关闭照相机
class Light
{
function turnon()
{
echo "打开闪光灯";
}
function turnoff()
{
echo "关闭闪光灯";
}
}
class Camera
{
function active()
{
echo "打开照相机";
}
function deactive()
{
echo "关闭闪光灯";
}
}
class Facade
{
protected $light;
protected $camera;
public function __construct()
{
$this->light = new Light();
$this->camera = new Camera();
}
public function start()
{
$this->light->turnon();
$this->camera->active();
}
public function stop()
{
$this->light->turnoff();
$this->camera->deactive();
}
}
$f = new Facade();
$f->start();
优点:
1.他对客户屏蔽了子系统组件,因而减少了客户处理对象的数目并使子系统使用起来更加方便
2.实现子系统与客户之间松耦合关系
3.如果应用需要,他并不限制他们使用子系统类,因而可以在系统能用性和易用性之间加以选择
适用场景:
1.为一些复杂的子系统提供一组接口
2.提供子系统的独立性
3.在层次化结构中,可以使用门面模式定义系统的每一层接口
1264

被折叠的 条评论
为什么被折叠?



