假设我们有一个在构造函数中获取 3 个对象的对象:
$SomeObject = new Object($UrlChecker, $UrlModifier, $UrlComposer);
像这样创建一个包装器对象 $Url 不是更好吗:
class Url {
public $Modifier;
public $Composer;
public $Checker;
public function __construct(){
$this->Modifier = new UrlModifier();
$this->Composer = new UrlComposer();
$this->Checker = new UrlChecker();
}
}
然后只传递这个 $Url 对象:
$Url = new Url();
$SomeObject = new Object($Url);
现在所有对象都将在 $Url 对象中创建,我可以在对象 $SomeObject 中调用它们的成员,如下所示:
$Url->modifier->set_parameter($param);
将嵌入式对象设置为公共是一种好习惯,还是应该为每个对象创建一个 getter 方法?或者也许我应该通过将所有三个对象都传递给 $SomeClass 来坚持第一个变体?
我以为我可以使用像 Java 的“System.out”这样的公共方法,其中“out”是 System-object 中的公共成员/对象。