• delphi 回调函数


    
    
    program Project2;
    
    {$APPTYPE CONSOLE}
    
    uses
      SysUtils;
    
    type
        //定义一个对象事件方法
       TCallbackFunc = function (i: Integer): Integer of object;
    
       TMyCallBackObject = class
        private
         FcallBack: TCallbackFunc;
        function SetcallBack(const Value: TCallbackFunc): Integer;
    
        public
          function call(param: Integer): Integer;
       end;
    
       TA = class
         public
            function doSomeThing(i: Integer): Integer;
       end;
    
    {TA}
    function TA.doSomeThing(i: Integer): Integer;
    begin
       Result := i;
    end;
    
    
    var
      c: TMyCallBackObject;
      I: Integer;
      t: TA;
    
    
    { TMyCallBackObject }
    
    function TMyCallBackObject.call(param: Integer): Integer;
    begin
        Result := 0;
    
       if Assigned(FcallBack) then
       //调用
         Result:= FcallBack(param);
    
    end;
    
    function TMyCallBackObject.SetcallBack(const Value: TCallbackFunc): Integer;
    begin
        Self.FcallBack := Value;
    end;
    
    
    begin
      c := TMyCallBackObject.Create;
      t := TA.Create;
    
      c.SetcallBack(t.doSomeThing);
      I := c.call(9);
    
      write(i);
      Readln;
      c.Free;
      t.Free;
    
    end.

    回调函数

        回调(CallBack)函数就是一种两个对象之间的通知方法。被通知者事先约定好发生某种情况时的处理函数,在该情况发生时发起通知者调用该处理函数以完成回调

      类似观察者模式, 一个对象(发布者)内部公布一个接口(TCallBackFunc), 对它感兴趣的类(TA)(订阅者)实现的具体执行方法(doSomething)

     

  • 相关阅读:
    淘宝网六个质量属性场景
    架构漫谈阅读笔记2
    poj 3304
    poj 2318
    bzoj 4008
    任意模数NTT
    CF623E
    CF712E
    bzoj 1925
    bzoj 4710
  • 原文地址:https://www.cnblogs.com/pengshaomin/p/2708923.html
Copyright © 2020-2023  润新知