java的同步調用、回調和非同步呼叫。

來源:互聯網
上載者:User

軟體模組之間總是存在著一定的介面,從調用方式上,可以把他們分為三類:同步調用、回調和非同步呼叫。

 

同步調用:一種阻塞式調用,調用方要等待對方執行完畢才返回,它是一種單向調用;

回      調:一種雙向調用模式,也就是說,被呼叫者在介面被調用時也會調用對方的介面;

非同步呼叫:一種類似訊息或事件的機制,不過它的調用方向剛好相反,介面的服務在收到某種訊息或發生某種事件時,會主動通知客戶方(即調用客戶方的介面)。

回調和非同步呼叫的關係非常緊密:使用回調來實現非同步訊息的註冊,通過非同步呼叫來實現訊息的通知。

========================================================

 

用Java裡的例子:

 

package callbackexample; public interface ICallBack { //需要回調的方法 public void postExec(); }

 

另外的一個類:

package callbackexample; public class FooBar { //組合彙總原則 private ICallBack callBack; public void setCallBack(ICallBack callBack) { this.callBack = callBack; doSth(); } public void doSth() { callBack.postExec(); } }

 

 

第二個類在測試類別裡面,是一個匿名類:

package callbackexample; public class Test { public static void main(String[] args) { FooBar foo = new FooBar(); foo.setCallBack(new ICallBack() { public void postExec() { System.out.println("在Test類中實現但不能被Test的對象引用,而由FooBar對象調用"); } }); } }

上訴的代碼:

  1.兩個類:匿名類和FooBar

  2.匿名類實現介面ICallBack(在test測試的main方法中用匿名類的形式實現)

  3.FooBar 擁有一個參數為ICallBack介面類型的函數setCallBack(ICallBack   o)  

  4.匿名類運行時調用FooBar中setCallBack函數,以自身傳入參數  

  5.FooBar已取得匿名類,就可以隨時回調匿名類中所實現的ICallBack介面中的方法

 ==================================

1。首先回調方法的概念與“構造方法”的概念是不一樣的,它不是指java中某個具有特殊意義或用途的方法。
2。稱它為方法的“回調”更恰當一些,它是指方法的一種調用方式。任何一個被“回調”的方法,皆可稱之為“回調方法” 
3。方法的回調通常發生在“java介面”和“抽象類別”的使用過程中。
假設有介面名為 ICallBack 其中有方法名為postExec()
有類Myclass 實現了該介面,也就是一定實現了postExec()這個方法。現在有另一個類FooBar它有個方法 setCallBack(ICallBack callBack) ,並且setCallBack方法調用了callBack的postExec()方法。
如果現在,我們使用一個Myclass 的執行個體myClass,將它作為參數帶入到setCallBack(ICallBack callBack)方法中,我們就說setCallBack(ICallBack callBack)方法回調了myClass的postExec()方法。

 











中國最新款女鞋網,來自淘寶天貓月銷量上千的女鞋喲:
www.taotuike.cn


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.