回调机制理解
1.?回調(diào)機制
回調(diào)機制是一種常見的設(shè)計模型,他把工作流內(nèi)的某個功能,按照約定的接口暴露給外部使用者,為外部使用者提供數(shù)據(jù),或要求外部使用者提供數(shù)據(jù)。
2.java回調(diào)機制:
軟件模塊之間總是存在著一定的接口,從調(diào)用方式上,可以把他們分為三類:同步調(diào)用、回調(diào)和異步調(diào)用。
?========================================================
同步調(diào)用:一種阻塞式調(diào)用,調(diào)用方要等待對方執(zhí)行完畢才返回,它是一種單向調(diào)用;
回??????調(diào):一種雙向調(diào)用模式,也就是說,被調(diào)用方在接口被調(diào)用時也會調(diào)用對方的接口;
異步調(diào)用:一種類似消息或事件的機制,不過它的調(diào)用方向剛好相反,接口的服務(wù)在收到某種訊息或發(fā)生某種事件時,會主動通知客戶方(即調(diào)用客戶方的接口)。
========================================================
回調(diào)和異步調(diào)用的關(guān)系非常緊密:使用回調(diào)來實現(xiàn)異步消息的注冊,通過異步調(diào)用來實現(xiàn)消息的通知。
3.java示例
接口:
public interface eventInterface
{
??? public void execute();
}
接口實現(xiàn)類:
public class eventimp implements eventInterface
{
??? public void execute()
??? {
?????? System.out.println("implements test");
??? }
}
回調(diào)類:
public class callback
{
??? eventInterface ei;
??? public void setCallBack(eventInterface e)
??? {
?????? this.ei=e;
?????? dosth();
??? }
??? public void dosth()
??? {
?????? ei.execute();
??? }
}
測試類:
public class Test
{
??? public static void main(String []args)
??? {
?????? callback cb=new callback();
??? /* 注釋部分采用匿名類實現(xiàn)接口eventInterface,運行時以自身傳入?yún)?shù)?
??? ?* cb.setCallBack(new eventInterface()
??? ?* {
??? ?* ??? public void execute(){System.out.println("callback test");}
??? ?* });*/
?????? cb.setCallBack(new eventimp());
??? }
}
總結(jié):從示例中可以看出,通過回調(diào)機制,回調(diào)類可以調(diào)用回調(diào)類中所定義的接口的實現(xiàn)類中的方法。
轉(zhuǎn)載于:https://www.cnblogs.com/SSatyr/archive/2011/11/07/2239191.html
總結(jié)
- 上一篇: 变长结构体的临时笔记
- 下一篇: 上班无聊