- 外观模式(Facade Pattern)外观模式即门面模式,隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。
- 这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
- 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。
<?php
/**
* Created by PhpStorm.
* User: LYL
* Date: 2015/5/16
* Time: 11:07
*/
/**阿里股票
* Class Ali
*/
class Ali
{
function buy()
{
echo "买入阿里股票<br/>";
}
function sell()
{
echo "卖出阿里股票<br/>";
}
}
/**万达股票
* Class Wanda
*/
class Wanda
{
function buy()
{
echo "买入万达股票<br/>";
}
function sell()
{
echo "卖出万达股票<br/>";
}
}
/**京东股票
* Class Jingdong
*/
class Jingdong
{
function buy()
{
echo "买入京东股票<br/>";
}
function sell()
{
echo "卖出京东股票<br/>";
}
}
/**门面模式核心角色
* Class FacadeCompany
*/
class FacadeCompany
{
private $ali;
private $wanda;
private $jingdong;
function __construct()
{
$this->ali=new Ali();
$this->jingdong=new Jingdong();
$this->wanda=new Wanda();
}
function buy()
{
$this->wanda->buy();
$this->ali->buy();
}
function sell()
{
$this->jingdong->sell();
}
}
header("Content-Type:text/html;charset=utf-8");
//------------------------门面模式测试代码------------------
require_once "./Facade/Facade.php";
$lurenA=new FacadeCompany();
$lurenA->buy();
$lurenA->sell();
- 优势
1.体现了系统的松耦关系,
2.门面模式可以降低编译的依赖性
3.简化系统,一般编译一个子系统不需要编译其他的子系统