PHP设计模式:外观模式

前言

菜鸟教程对外观模式的描述是:外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。

代码

<?php

class  Images
{
    public function methodA()
    {
        echo '图片类中的复杂逻辑A' . PHP_EOL;
    }

    public function methodB()
    {
        echo '图片类中的复杂逻辑B' . PHP_EOL;
    }

    public function methodC()
    {
        echo '图片类中的复杂逻辑C' . PHP_EOL;
    }
}

class  Text
{
    public function methodA()
    {
        echo 'Text类中的复杂逻辑A' . PHP_EOL;
    }

    public function methodB()
    {
        echo 'Text类中的复杂逻辑B' . PHP_EOL;
    }

    public function methodC()
    {
        echo 'Text类中的复杂逻辑C' . PHP_EOL;
    }
}

class Facade
{
    private $images;
    private $text;

    public function __construct()
    {
        $this->images = new Images();
        $this->text = new Text();
    }

    public function methodOne()
    {
        $this->images->methodA();
        $this->text->methodB();
    }

    public function methodTwo()
    {
        $this->images->methodA();
        $this->text->methodA();
        $this->images->methodC();
    }
}

$facade = new Facade();
$facade->methodOne();
$facade->methodTwo();

输出

image.png

说白了外观模式就是对一个或者多个类进行封装。以降低客户端调用时候的复杂性。上述的例子表示Facade类对Images类和Text类进行了封装,客户端只需要调用Facade类。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容