外观模式 Facade

Posted 罗夏

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了外观模式 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);
    }
}

  

 

以上是关于外观模式 Facade的主要内容,如果未能解决你的问题,请参考以下文章

设计模式:外观(Facade)模式

设计模式之外观模式 Facade

设计模式之- 外观模式(Facade Pattern)

外观模式 Facade

外观/门面模式(Facade Pattern)

外观模式(Facade)