php与设计模式-门面模式

门面模式

提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。

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

优势:
* 它可以对客户屏蔽子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。

     *  它实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件往往是紧耦合的。松耦合关系使得子系统的组件变化不会影响到它的客户。 Facade模式有助于建立层次结构系统,也有助于对对象之间的依赖关系分层。

     *  Facade模式可以消除复杂的循环依赖关系。这一点在客户程序与子系统是分别实现的时候尤为重要。在大型软件系统中降低编译依赖性至关重要。在子系统类改变时,希望尽量减少重编译工作以节省时间。用Facade可以降低编译依赖性,限制重要系统中较小的变化所需的重编译工作。

     * Facade模式同样也有利于简化系统在不同平台之间的移植过程,因为编译一个子系统一般不需要编译所有其他的子系统。

请关注我的订阅号

订阅号.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值