外观模式为子系统中的接口提供一个一致的界面,此模式定义了一个高层接口,这接口是得子系统更容易调用。

子系统类:

class SubSystemA {

public function methodA()
{
    echo 'My is A'.'<br>';
}
}

class SubSystemB {

public function methodB()
{
    echo 'My is B'.'<br>';
}
}

class SubSystemC {

public function methodC()
{
    echo 'My is C'.'<br>';
}
}

外观类(Facade.php):

class Facade {

protected $a = null;
protected $b = null;
protected $c = null;

public function __construct()
{
    $this->a = new SubSystemA();
    $this->b = new SubSystemB();
    $this->c = new SubSystemC();
}

public function useMethodTest()
{
    $this->a->methodA();
    $this->b->methodB();
}

public function useMethodTestA()
{
    $this->c->methodC();
}
}

客户端代码:

$facade = new Facade();
$facade->useMethodTest();
$facade->useMethodTestA();

结果:

My is A
My is B
My is C

使用外观模式可以很大程度的降低类与类之间的依赖。