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