2.10. 门面模式(Facade)

未匹配的标注

uml

门面模式(Facade)

目的 (其二)

  1. 避免让你阅读复杂的 API 文档
  2. 降低耦合性

其实就是把多个类方法合起来成而已 = 调用一个方法 = 调用多个类方法。

代码实现

<?php

interface JobInterface{
    public function push();
    public function dispatch();
}

class DatabaseJob implements JobInterface
{
    public function push(){  }
    public function dispatch(){ echo "database".PHP_EOL; }
}

class RedisJob implements JobInterface
{
    public function push(){ }
    public function dispatch(){ echo "redis".PHP_EOL; }
}

class JobFacade{
    protected $database,$redis;
    public function __construct()
    {
        $this->database = new DatabaseJob();
        $this->redis = new RedisJob();

    }
    public function execDatabaseJob()
    {
        $this->database->push();
        $this->database->dispatch();
    }
    public function execRedisJob()
    {
        $this->redis->push();
        $this->redis->dispatch();
        echo "redis";
    }
}

$jobFacade = new JobFacade();
$jobFacade->execDatabaseJob();
$jobFacade->execRedisJob();

相比lar门面

完全不一样好吧?

lar的全是访问 服务容器的实例

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~