外观模式

外观模式(Facade Pattern)是一种结构型设计模式,它为一个复杂的子系统提供一个简单的接口。通过这个接口,客户端可以访问子系统中的各种功能,而不需要了解子系统内部的复杂实现细节。

在PHP中,我们可以通过以下方式实现外观模式:

// 子系统类1
class Subsystem1
{
    public function operation1()
    {
        echo "Subsystem1 operation1\n";
    }
 
    public function operation2()
    {
        echo "Subsystem1 operation2\n";
    }
}
 
// 子系统类2
class Subsystem2
{
    public function operation1()
    {
        echo "Subsystem2 operation1\n";
    }
 
    public function operation2()
    {
        echo "Subsystem2 operation2\n";
    }
}
 
// 外观类
class Facade
{
    private $subsystem1;
    private $subsystem2;
 
    public function __construct()
    {
        $this->subsystem1 = new Subsystem1();
        $this->subsystem2 = new Subsystem2();
    }
 
    public function operation()
    {
        echo "Facade operation:\n";
        $this->subsystem1->operation1();
        $this->subsystem1->operation2();
        $this->subsystem2->operation1();
        $this->subsystem2->operation2();
    }
}

在上述代码中,我们定义了两个子系统类 Subsystem1 和 Subsystem2,它们分别提供了一些操作。然后我们定义了一个外观类 Facade,它将两个子系统类组合在一起,并提供了一个简单的 operation 方法来访问子系统中的各种操作。


客户端可以通过以下方式使用外观类:

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

通过外观类的 operation 方法,客户端可以访问子系统中的各种操作,而不需要了解子系统内部的复杂实现细节。

评论

0 条评论