我正在尝试设计一些需要使用外部对象的类。外部对象来自第三方库。伪代码中的示例
Class A {
protected $foo
public function __construct(\ThirdParty\Foo $foo) {
$this->foo = $foo
}
}
创建这些子类是为了保存根据 Foo 的实例化方式而具有略微不同实现的方法。
Class AA extends A {
$fooInfo = 'red'
public function __construct($foo) {
parent::__construct($foo)
}
public function get() {
return $this->foo->getTypeX();
}
}
Class AB extends A {
$fooInfo = 'white'
public function __construct($foo) {
parent::__construct($foo)
}
public function get() {
return $this->foo->getTypeY();
}
}
但是要使用第三方应用程序,我在实例化它时需要 $fooInfo 中的值。
$clientRed = new Foo('red')
$clientWhite = new Foo('white')
那么当我实例化 AA 或 AB 时,我如何将颜色信息获取到 Foo 对象?
$client = new AA(new Foo(????))