外观(Facade)模式又叫作门面模式,是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。符合迪米特原则
如果我想使用多个类的代码,先创建个门面类统一去调用,我只需要和这个门面打交道,不用去了解那些类的细节 这个就是门面类,我想执行的时候只需要知道调用门面类的run方法就行了
class Facade
{
private Os $os;
private Bios $bios;
public function __construct(Bios $bios, Os $os)
{
$this->bios = $bios;
$this->os = $os;
}
public function run()
{
$this->bios->run();
$this->os->runOs(;
}
}
Os类和Bios类都有自己的具体实现
具体使用的时候facade = new Facade(bios, os);facade->run();