一個簡單的java回調函數的實現


回調函數

回調函數涉及的3個函數

登記回調函數

回調函數

響應回調函數

簡單的解釋

你到一個商店買東西,剛好你要的東西沒有貨,於是你在店員那里留下了你的電話。過了幾天店里有貨了,店員就打了你的電話,然后你接到電話后就到店里去取了貨。在這個樣例里,你的電話號碼就叫回調函數。你把電話留給店員就叫登記回調函數,店里后來有貨了叫做觸發了回調關聯的事件。店員給你打電話叫做調用回調函數,你到店里去取貨叫做響應回調事件。回答完成。來自知乎點擊打開鏈接

代碼的實現

首先有一個接口 interface CallBack,當然沒有也是能夠的,主要是用來預定義業務邏輯

public interface CallBack {
	/*
	 * 響應回調函數
	 */
	public void slove();
}

然后是上面接口的實現,登記回調和響應回調的實現類
public class A implements CallBack {
	B b = new B();
	@Override
	/*
	 * (non-Javadoc)
	 * @see CallBack#slove()
	 * 響應回調函數
	 */
	public void slove() {
		System.out.println("the problem is solve!");
	}
	/*
	 * 登記回調函數
	 */
	public void askQuestion(){
		System.out.println("ask b solve the problem!");
		/*
		 * 自己去做其它事
		 */
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				System.out.println("A want to do another thing!");
			}
		}).start();
		/*
		 * ask b to solve this problem
		 */
		this.b.call(this);
	}
	/*
	 * test
	 */
	 public static void main(String[] args)  {
		A a = new A();
		a.askQuestion();
	}
}

然后就是實現回調函數的類
public class B {
	/*
	 * 回調函數
	 */
	public void call(CallBack a){
		/*
		 * b help a solve the priblem
		 */
		System.out.println("b help a solve the problem!");
		/*
		 * call back
		 */
		a.slove();
		
	}
}

測試結果





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM