Java之回调函数的简单实现

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

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

类图:

Java之回调函数的简单实现_第1张图片

代码如下:

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();  
    }  
}  

你可能感兴趣的:(Java之回调函数的简单实现)