Java之回调函数的简单实现

在Windows中,程序员想让系统DLL调用自己编写的一个方法,于是利用DLL当中回调函数(CALLBACK)的接口来编写程序,使它调用,这个就称为回调。在调用接口时,需要严格的按照定义的参数和方法调用,并且需要处理函数的异步,否则会导致程序的崩溃。

举例:
程序员A写了一段程序(类Caller),其中预留有回调函数接口(MyInterface),并封装好了该程序。程序员B要让Caller调用自己的Client类中的一个方法,于是,他通过Caller中的接口回调自己Client中的方法。

类图:

代码如下:

public class Caller {  
    private MyCallInterface callInterface;  
      
    public Caller() {  
    }  
      
    public void setCallFunc(MyCallInterface callInterface) {  
        this.callInterface = callInterface;  
    }  
      
    public void call() {  
        callInterface.printName();  
    }  
}  
public interface MyCallInterface {  
    public void  printName();  
} 
public class Client implements MyCallInterface {  
  
    @Override  
    public void printName() {  
        System.out.println("This is the client printName method");  
    }  
}  

测试代码:

public class Test {  
    public static void main(String[] args) {  
        Caller caller = new Caller();  
        caller.setCallFunc(new Client());  
        caller.call();  
    }  
}  

其中Client也可以通过匿名内部类来实现,如下:

public class Test {  
    public static void main(String[] args) {  
        Caller caller = new Caller();  
//      caller.setCallFunc(new Client());  
        caller.setCallFunc(new MyCallInterface() {  
            public void printName() {  
                System.out.println("This is the client printName method");  
            }  
        });  
        caller.call();  
    }  
}  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容