php外观模式

CleverCode最近在看外观模式。

1 模式介绍

 为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使得这一子系统更加容易使用。


2 模式中的角色

         2.1 外观类(Facade):外观类知道哪些子系统类负责处理请求,将客户的请求代理给恰当的子系统对象。


  2.2 子系统类集合(SubSystem Classes):子系统类集合实现了子系统的功能,处理外观类对象指派的任务。


3 模式结构


php外观模式_第1张图片


php外观模式_第2张图片

4 项目
4.1 设计一个商场统一购买家电和家具的场景。

4.2 源码设计
bingXiang = new BingXiang();  
        $this->xiYiJi = new XiYiJi();  
        $this->chuang = new Chuang();  
        $this->yiGui = new YiGui();  
    }

    //家电
    public function buyJiaDian()
    {/*{{{*/
        $this->bingXiang->buy();
        $this->xiYiJi->buy();
    }/*}}}*/

    //家具
    public function buyJiaJu()
    {/*{{{*/
        $this->chuang->buy();
        $this->yiGui->buy();
    }/*}}}*/

}/*}}}*/

class Client
{/*{{{*/
    public static function main($argv)    
    {
        $shangChang = new ShangChang();    

        //买家电
        $shangChang->buyJiaDian();

        //买家具
        $shangChang->buyJiaJu();
    }
}/*}}}*/

Client::main($argv);

?>

4.3 结果展示
php外观模式_第3张图片


你可能感兴趣的:(设计模式之PHP项目应用)