与观察者的 PHP 对象组合?

标签 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

如何从 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/

相关文章:

java - 如何将对象添加到 2D 对象数组中的特定 x,y 位置

javascript - 如何在其他对象数组的每个值上创建多个数组?

php - 将 PHP 对象序列化为 JSON

oop - 合成不是“合成”

javascript - 如何将实时 javascript 变量转换为 php 变量?

php - 在查询中连接多个 MySQL 表

javascript - 使用 eval 动态执行带有外部 src 属性的 <script> 标签

javascript - 返回确认取消按钮不起作用

go - 将数据和函数与接口(interface)和结构相结合的组合

c++ - 通过组合或自由函数扩展 STL 容器?