对不起,如果我的术语似乎不正确...(因为它可能是)
假设我正在使用组合,我的高级对象是这样的:
abstract child
{
/* array of Activity objects */
public $activities;
abstract function punish() {}
}
favoriteChild extends child
{
function punish() {
// Have a talk
}
}
redHeadedStepChild extends child
{
function punish() {
// Beat with wrench
}
}
现在假设 $activities
由更多对象组成,其中一个是 StealingCookiesFromJar
。
如何从 StealingCookiesFromJar
对象中调用具体的子方法 punish
? (我对观察者不熟悉……这是我应该在这里学习的东西吗?)
最佳答案
您需要在 StealingCookiesFromJar 对象中有一个具体的子对象。创建它或将其传递给方法
class StealingCookiesFromJar{
function doSomething(){
$child = new redHeadedStepChild();
$child->punish();
}
}
或
class StealingCookiesFromJar{
function doSomething(redHeadedStepChild $child){
$child->punish();
}
}
关于与观察者的 PHP 对象组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13162462/