深入了解回调函数Java
??????? 打回來。我第一次看到Java編程思想,后來Observer模式也適用于一個回調函數的想法。但是,一直沒有重視,在處于劣勢的最終面試,越來越明白為什么那么多人說Java編程思想,這本書應該是一遍又一遍,。
??????? 首先在網絡上搜索非常多文章介紹什么是回調函數。看的云里霧里的。后來自己一步步分解最終理解了。記錄例如以下。
??????? 從維基百科上面摘抄定義:(看完本篇文章再來理解這個定義)
??????? 在計算機程序設計中。回調函數,或簡稱回調,是指通過函數參數傳遞到其他代碼的。某一塊可運行代碼的引用。這一設計同意了底層代碼調用在高層定義的子程序。
??????? 在Java里面。我們使用接口來實現回調。
??????? 這篇文章中的講解定義很好:http://blog.csdn.net/sweetwxh/article/details/2067139
??????? 所謂的回調,就是程序猿A寫了一段程序(程序a),當中預留有回調函數接口,并封裝好了該程序。
程序猿B要讓a調用自己的程序b中的一個方法。于是,他通過a中的接口回調自己b中的方法。
以下是樣例。
??????1. ?首先定義一個類Caller,依照上面的定義就是程序猿A寫的程序a。這個類里面保存一個接口引用。
??????
public class Caller {private MyCallInterface callInterface;public Caller() {}public void setCallFunc(MyCallInterface callInterface) {this.callInterface = callInterface;}public void call() {callInterface.printName();} }
?????? 2.? 當然須要接口的定義,為了方便程序猿B依據我的定義編敲代碼實現接口。
??
public interface MyCallInterface {public void printName(); }
???? ?3.? 第三是定義程序猿B寫的程序b
?????? 4.? 測試例如以下
????? 看到這里應該明確什么是回調了。有些文章介紹的非常好。可是剛開始沒看明確。是由于把第3步的類省略,直接寫成匿名類了。
??????? 5.? 在測試方法中直接使用匿名類。省去第3步。
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();} }
????? 看完上面的文章后,。直接看下面的文章:http://kidult.iteye.com/blog/148982
? ??? 這些都是理解的回調函數。
轉載于:https://www.cnblogs.com/hrhguanli/p/4588408.html
總結
以上是生活随笔為你收集整理的深入了解回调函数Java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (王道408考研操作系统)第四章文件管理
- 下一篇: 关于Java中 求Logn/log2 的