PHP和循环依赖$ this

时间:2017-02-21 21:27:14

标签: php singleton this circular-dependency

我对循环依赖有一些疑问。

我想为PHP框架开发一个模块。我有一个类用于连接框架和这个实例的几个对象。例如,A和B有更多。

我想从其他类访问对象函数和参数,但什么是最好的设计?

class Main {
    $a;
    $b;

    public function __constructor() {
        $this->a = new A($this);
        $this->b = new B($this);
    }

    public function getA() {
        return $this->a;
    }
}

class A {
    $main;

    public function __constructor(Main $main) {
        $this->main = $main;
    }

    public function functionA() {}
}

class B {
    $main;

    public function __constructor(Main $main) {
        $this->main = $main;
    }

    public function functionB() {
        $this->main->getA()->functionA();
    }
}

我知道我有循环依赖。它不会长得太多,因为只有一次实例这些对象,但我想以正确的方式制作。

我有其他选择:

  • 仅将对象(A,B,C,...)传递给需要它的类。可能我会以其他循环依赖结束。
  • 使用单身人士为主
  • 避免使用$ this实例化对象,并在Main中制作更多内容。

我认为最后一个选项是首选,但我想要一个简单的Main类来接收模块的请求。

我的结构有任何设计模式吗?有什么建议吗?

感谢。

0 个答案:

没有答案
相关问题