【发布时间】:2014-09-23 15:26:49
【问题描述】:
像下面这样在构造函数中实例化对象是不是很糟糕?
class Foo
{
public function fooMethod() {
return 'foo method';
}
}
class Too
{
public function tooMethod() {
return 'too method';
}
}
class Boo
{
public $foo;
public $too;
public function __construct()
{
$this->foo = new Foo();
$this->too = new Too();
}
}
如果是这样,它有多糟糕?应该怎么做才合适?
【问题讨论】:
-
如果你不这样做,你将如何在你的类中声明一个 foo 元素?
-
@Hanky웃Panky 通过构造函数传入。
-
为什么会这样?!它是什么构造函数...
-
@WayneWhitty 这将要求调用者知道实现在内部使用
Foo和Bar对象。这是一个可能应该隐藏的实现细节。这意味着您无法重新设计Boo,因此它使用NewFoo而不是Foo
标签: php oop constructor