【问题标题】:Class Structure and Passing Data类结构和传递数据
【发布时间】:2013-11-15 09:51:55
【问题描述】:

下面我有一系列的课程。我试图找出将数据从 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

起初我想传递如下层次结构中的数据(我目前没有扩展任何东西,倾向于组合而不是继承):

\CLI\Process.php

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

\CLI\Process\Condition.php

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

\CLI\Process\Condition\Rule.php

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

相反我决定使用注册表模式,因为我很偏执。我觉得共享数据从一个班级转移到另一个班级,而且很混乱。然后我发现自己在子类中设置了一些注册表值,结果同样糟糕!

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

我的最佳选择是单身吗?有没有人有任何建议来保持这个清洁?我希望它是干净的,并且我不想有这种偏执的想法,即通过不断地将数据向下传递来污染数据。

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

【问题讨论】:

标签: php


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2022-01-20
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多