本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2024-11(1)

深入 Laravel 内核之外观模式(门面模式)

发布于2021-03-14 06:09     阅读(1123)     评论(0)     点赞(7)     收藏(5)


门面模式核心内容:

  • 客户端与子系统的通信通过外观对象进行;
  • 外观对象封装一系列子系统的具体对应方法,对客户端只需暴露一个单一的入口方法;
  • 客户端通过访问外观对象即可调用子系统的基础方法,无需关心子系统的具体实现;
  • 可以通过引入抽象外观类解决增减子系统需要修改外观类的问题;
  • 可以通过引入外部配置文件实现外观对象与不同子系统的绑定关系;
  • 外观模式可以有效降低客户端与子系统的耦合度,客户端只与外观对象交互,不关心子系统的复杂细节;
  • 一个系统通常只需要一个外观类,一般情况下外观类为单例模式;

先定义两个子系统,子系统有各自的操作方法:

class SystemA
{
    public function operationA()
    {
        //
    }
}

class SystemB
{
    public function operationB()
    {
        //
    }
}

定义一个外观类,提供单一入口,内部负责调用子系统的方法:

class Facade
{
    private $systemA;
    private $systemB;

    public function __construct()
    {
        $this->systemA = new SystemA;
        $this->systemB = new SystemB;
    }

    public function operation()
    {
        $this->systemA->operationA();
        $this->systemB->operationB();
    }
}

定义客户端,客户端只需要与外观类交互即可实现对子系统的调用:

class Client
{
    public function main()
    {
        (new Facade)->operation();
    }
}

原文链接:https://www.cnblogs.com/danhuang/p/13165152.html



所属网站分类: 技术文章 > 博客

作者:下班了快跑

链接:http://www.phpheidong.com/blog/article/3379/f799681e14ea4266f903/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

7 0
收藏该文
已收藏

评论内容:(最多支持255个字符)