dqu92800 2012-03-30 08:27
浏览 21
已采纳

如何创建“监听(等待?)”方法

Lets say I have:

class X
{
    function a()
    {
        echo "Hello, ";
    }
    function b()
    {
        echo "John!";
    }
}

and then

Y = new X();
Y->a();

but once the method a is called, I also want the method b called immediately after it (so it kind of listens(waits?) till the moment when a is called and finished), so the output is

Hello, John

Is it possible to do that, and how that should look? And no, calling $this->b(); at the end of method a is NOT a solution to what I want to do :) Thanks in advance :)

  • 写回答

2条回答 默认 最新

  • donglisi8644 2012-03-30 08:30
    关注

    You are searching for observer pattern. Read some example from the internet, you should be able to do what you are attempting.

    However, A very simple example of using observer pattern:

    class X
    {
        private $observer;
        public function __construct() {
            $this -> observer = new XObserver();
        }
    
        function a() {
            echo "Hello,";      
            $this -> observer -> aExecuted($this);
        }
    
        function b() {
            echo "John!";
        }
    }
    
    class XObserver {
    
        public function aExecuted($obj) {
            return $obj -> b(); 
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line
  • ¥500 火焰左右视图、视差(基于双目相机)
  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)