设计模式-外观模式

一:外观模式 Facade Pattern:
外部与一个子系统进行通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观
模式定义了一个高层接口,这个接口使得这一接口更加容易使用。
它又称为门面模式,是一种对象结构型模式。

二:外观模式角色
1:Facade: 外观角色
2:SubSystem:子系统角色

三:外观模式结果图

来自 《大话设计模式》

 

四:实例

<?php
class SubSystemOne
{
    public function MethodOne() {
        echo " 子系统方法一 ";
    }

}

class SubSystemTwo
{
    public function MethodTwo() {
        echo " 子系统方法二 ";
    }
}

class SubSystemThree
{
    public function MethodThree() {
        echo " 子系统方法三 ";
    }
}

class SubSystemFour
{
    public function MethodFour() {
        echo " 子系统方法四 ";
    }
}

class Facade
{
    public $subSystemOne;
    public $subSystemTwo;
    public $subSystemThree;
    public $subSystemFour;

    public function __construct() {
        $this->subSystemOne = new SubSystemOne();
        $this->subSystemTwo = new SubSystemTwo();
        $this->subSystemThree = new SubSystemThree();
        $this->subSystemFour = new SubSystemFour();
    }

    public function MethodA() {
        echo "\r\n 方法组 A() ----- \r\n";

        $this->subSystemOne->MethodOne();
        $this->subSystemTwo->MethodTwo();
        $this->subSystemFour->MethodFour();
    }

    public function MethodB() {
         echo "\r\n 方法组 B() ----- \r\n";

        $this->subSystemTwo->MethodTwo();
        $this->subSystemThree->MethodThree();
    }
}

$facade = new Facade();
$facade->MethodA();

$facade->MethodB();

 

posted @ 2017-05-26 21:36  九卷  阅读(276)  评论(0编辑  收藏  举报