關於接口回調的簡單理解和分析


網上看了不少接口回調的解釋,感覺每個人的解釋都不一樣,有的人覺得好理解的,換個人可能就覺得不知所雲。所以記錄一下我自己的理解:

 

背景:A類想調用B類里的方法c來做某些事情,然后希望這件事情做完之后能調用A類的方法d返回給A類一個數據並讓A類根據返回數據決定干什么事;

 

思路:A類調用B類方法,只需要持有一個B類對象的引用即可;如果希望方法c執行完成以后返回給A類數據,則需要在方法c最后去調用方法d,所以方法c里必須傳入一個A類對象的引用;

 

流程:A類獲得一個B類對象引用b 

B b = new B();

 調用B類的c方法並傳入一個A類的對象的引用a 

b.c(new A());
//或者
A a = new A();
b.c(a);

  c方法執行完畢調用A類的d方法;

public void c(A a){
    ...
    ...     a.d(); }

引申:如果是別的類也需要調用B類的c方法並想要獲得返回值該怎么處理?如果還是按照這樣來,那么在向c方法傳值的時候就要修改類型,並且要修改最后的d方法;為了方便,這里定義一個接口E,借口E里有一個方法d;

interface E{
  void d();
}

這樣一來,只要實現了這個接口就一定有d方法,而且實現了這個接口的類就是這個接口的子類,向c方法里傳入對象的類型問題也解決了;

public void c(E e){
    ...
} 

 

暫時的理解就這樣,以后有新的體會了再加。


免責聲明!

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



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