S2:外观模式 Facade
为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.
什么时候使用:
1,开发阶段,子系统越来越复杂,增加外观模式提供一个简单的调用接口。
2,维护一个大型遗留系统的时候,可能这个系统已经非常难以维护和扩展,但又包含非常重要的功能,为其开发一个外观类,以便新系统与其交互。
3,外观模式可以隐藏来自调用对象的复杂性。
UML:

示例代码:
class A
{
public function song($songList)
{
foreach($songList as $val) {
echo $val . '.mp3';
}
}
}
class B
{
public function song($songList)
{
foreach($songList as $val) {
echo $val . '.wav';
}
}
}
class Facade
{
private $a;
private $b;
public function create()
{
$this->a = new A();
$this->B = new B();
}
public function method($songList)
{
$this->a->song($songList);
$this->b->song($songList);
}
}
浙公网安备 33010602011771号