类结构和传递数据

时间:2013-11-04 17:28:15

标签: php

下面我有一系列课程。我试图找出将 Process.php 中的数据传递到以下每个类的最佳方法。

/CLI/
    /Process/
        /Condition
            Rule.php
        Condition.php
        Single.php
    Process.php
    Response.php
    Registry.php <-- I don't want to use this, It feels sloppy

起初我想在层次结构中传递数据,如下所示(我现在没有扩展任何有利于Composition而不是继承的内容):

\ CLI \ Process.php

public function run() {
    $condition = new Condition($dataToShare);
}

\ CLI \过程\ Condition.php

public function __construct($dataToShare) {
    $this->data = $dataToShare;
}

\ CLI \过程\条件\ Rule.php

public function __construct($dataToShare) {
    $this->data = $dataToShare;
}

相反我决定使用注册表模式因为我是偏执狂。我觉得共享数据从一个类到另一个类都很混乱。然后我发现自己在一个子类中设置了一些注册表值,它也一样糟糕!

所以一位同事告诉我尝试一个抽象类,所以每个人都可以扩展它。我的问题是,如果我扩展一个抽象类,那么我的值将不会被设置(因为它是一个新的父实例)。

我最好选择 Singleton 吗?有没有人有任何建议让这个更干净?我希望这个很干净,而且我不想让这种偏执的想法污染数据而不断地将其传递到水平。

我问这个问题时感觉就像是在水下说中文。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用抽象类和静态属性与所有实例共享它