美文网首页设计模式最好的PHP
php与设计模式-门面模式

php与设计模式-门面模式

作者: 码哥说 | 来源:发表于2019-03-17 09:02 被阅读0次

    门面模式

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

    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

    相关文章

      网友评论

        本文标题:php与设计模式-门面模式

        本文链接:https://www.haomeiwen.com/subject/hbzfmqtx.html