用观察者的PHP对象组成?

时间:2012-10-31 16:24:13

标签: php object composition observers

对不起,如果我的术语看起来不正确......(因为它可能是)

假设我正在使用合成,我的更高级别的对象就像:

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

如何从punish对象中调用具体的子方法StealingCookiesFromJar? (我对观察者不熟悉......我应该在这里学习什么?)

1 个答案:

答案 0 :(得分:0)

你需要在StealingCookiesFromJar对象中有一个具体的孩子。创建它或将其传递给方法

 class StealingCookiesFromJar{
    function doSomething(){
      $child = new redHeadedStepChild();
      $child->punish();
     }
  }

 class StealingCookiesFromJar{
    function doSomething(redHeadedStepChild $child){
       $child->punish();
    }
  }