设计模式-门面模式
2017-02-10 11:28
141 查看
门面模式
提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。
Demo
/**阿里股票
* 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();
}
}
$lurenA=new FacadeCompany();
$lurenA->buy();
$lurenA->sell();
优势:
1)它可以对客户屏蔽子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。
2) 它实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件往往是紧耦合的。松耦合关系使得子系统的组件变化不会影响到它的客户。
Facade模式有助于建立层次结构系统,也有助于对对象之间的依赖关系分层。
3) Facade模式可以消除复杂的循环依赖关系。这一点在客户程序与子系统是分别实现的时候尤为重要。在大型软件系统中降低编译依赖性至关重要。在子系统类改变时,希望尽量减少重编译工作以节省时间。用Facade可以降低编译依赖性,限制重要系统中较小的变化所需的重编译工作。
4)Facade模式同样也有利于简化系统在不同平台之间的移植过程,因为编译一个子系统一般不需要编译所有其他的子系统。
提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。
Demo
/**阿里股票
* 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();
}
}
$lurenA=new FacadeCompany();
$lurenA->buy();
$lurenA->sell();
优势:
1)它可以对客户屏蔽子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。
2) 它实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件往往是紧耦合的。松耦合关系使得子系统的组件变化不会影响到它的客户。
Facade模式有助于建立层次结构系统,也有助于对对象之间的依赖关系分层。
3) Facade模式可以消除复杂的循环依赖关系。这一点在客户程序与子系统是分别实现的时候尤为重要。在大型软件系统中降低编译依赖性至关重要。在子系统类改变时,希望尽量减少重编译工作以节省时间。用Facade可以降低编译依赖性,限制重要系统中较小的变化所需的重编译工作。
4)Facade模式同样也有利于简化系统在不同平台之间的移植过程,因为编译一个子系统一般不需要编译所有其他的子系统。
相关文章推荐
- TypeScript设计模式之门面、适配器
- 精辟--门面设计模式
- 设计模式学习笔记——门面模式
- 设计模式 门面模式
- 23种设计模式之-----门面模式(Facade Pattern)
- iOS设计模式(MVC和单例模式,门面和装饰器模式,适配器和观察者模式以及备忘录和命令模式)
- 设计模式 篇 单子模式 门面模式 适配器 工厂模式 观察者模式 命令者模式 装饰者模式 代理模式 简单讲解
- 设计模式(10) 门面/外观模式(简单入门 结构模式)
- 设计模式——门面模式
- 学习php设计模式 php实现门面模式(Facade)
- 设计模式——门面模式(Facade)
- c++设计模式之Facade门面模式.txt
- 设计模式——门面模式(Facade)
- IOS设计模式之二(门面模式,装饰器模式)
- 设计模式之门面模式
- astron设计模式学习手记之门面模式
- 简易的设计模式——门面模式
- JAVA设计模式十八:--Facade(外观模式或门面模式)
- JAVA的23种设计模式---门面模式