1.一種UI和業(yè)務(wù)邏輯分離方法,其特征在于,所述方法包括:
UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊;
消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中;
功能模塊根據(jù)從消息分發(fā)模塊獲取的功能消息從設(shè)備層中調(diào)用對應(yīng)的接口函數(shù)和設(shè)備進(jìn)行通信,功能模塊執(zhí)行所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作;
功能模塊在執(zhí)行完所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中對應(yīng)的功能狀態(tài)
當(dāng)修改后的功能狀態(tài)與UI層的當(dāng)前功能狀態(tài)不一致時,公共狀態(tài)模塊發(fā)送UI更新消息至UI層。
2.如權(quán)利要求1所述的方法,其特征在于,所述UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊的步驟,包括:
UI層接收用戶輸入的UI操作指令,識別出所述UI操作指令中包含的模塊標(biāo)識和功能操作;
UI層調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢與所述UI操作指令關(guān)聯(lián)的功能模塊的功能狀態(tài),根據(jù)所述功能狀態(tài)確定所述UI操作指令對應(yīng)的功能操作和與所述功能操作對應(yīng)的功能狀態(tài);
UI層將包含所述模塊標(biāo)識、所述功能操作和與所述功能操作對應(yīng)的功能狀態(tài)的UI操作消息發(fā)送至消息分發(fā)模塊。
3.如權(quán)利要求1所述的方法,其特征在于,所述功能模塊至少為一個;當(dāng)所述功能模塊大于一個時,所述功能模塊并行處理由消息分發(fā)模塊分發(fā)過來的功能消息。
4.如權(quán)利要求1或3所述的方法,其特征在于,所述消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中的步驟,包括:
消息分發(fā)模塊在獲取UI層發(fā)送的UI操作消息后,根據(jù)所述UI操作消息調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢所述模塊標(biāo)識所屬的主功能模塊是否存在相互關(guān)聯(lián)的次功能模塊;
如果不存在相互關(guān)聯(lián)的次功能模塊,消息分發(fā)模塊直接分發(fā)所述UI操作消息至所述模塊標(biāo)識所屬的主功能模塊中;
如果存在相互關(guān)聯(lián)的次功能模塊,消息分發(fā)模塊根據(jù)預(yù)設(shè)規(guī)則將所述UI操作消息分解成與所述主功能模塊和次功能模塊對應(yīng)的功能消息,并將分解后的功能消息對應(yīng)分發(fā)至所述主功能模塊和所述次功能模塊中。
5.如權(quán)利要求4所述的方法,其特征在于,所述消息分發(fā)模塊根據(jù)預(yù)設(shè)規(guī)則將所述UI操作消息分解成與所述主功能模塊和次功能模塊對應(yīng)的功能消息的步驟,包括:
消息分發(fā)模塊調(diào)用接口函數(shù)查詢所述次功能模塊的當(dāng)前功能狀態(tài);
消息分發(fā)模塊確定所述次功能模塊的當(dāng)前功能狀態(tài)與所述UI操作消息中包含的與所述功能操作對應(yīng)的功能狀態(tài)是否存在沖突;
如果存在沖突,消息分發(fā)模塊生成包含與所述UI操作消息中包含的功能操作相反的功能操作的次功能消息,按照預(yù)設(shè)優(yōu)先級將所述UI操作消息和所述次功能消息分發(fā)至對應(yīng)的主功能模塊和次功能模塊中。
6.一種UI和業(yè)務(wù)邏輯分離裝置,其特征在于,所述裝置包括:
UI操作消息發(fā)送單元,用于由UI層將識別出來的UI操作消息發(fā)送至消息分發(fā)模塊;
分發(fā)單元,用于由消息分發(fā)模塊根據(jù)從UI層獲取的UI操作消息確定對應(yīng)的功能消息,并分發(fā)所述功能消息至對應(yīng)的功能模塊中;
調(diào)用單元,用于由功能模塊根據(jù)從消息分發(fā)模塊獲取的功能消息從設(shè)備層中調(diào)用對應(yīng)的接口函數(shù)和設(shè)備進(jìn)行通信,功能模塊執(zhí)行所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作;
修改單元,用于由功能模塊在執(zhí)行完所述功能消息對應(yīng)的業(yè)務(wù)邏輯操作后,調(diào)用接口函數(shù)修改公共狀態(tài)模塊中對應(yīng)的功能狀態(tài);
UI更新消息發(fā)送單元,用于當(dāng)修改后的功能狀態(tài)與UI層的當(dāng)前功能狀態(tài)不一致時,由公共狀態(tài)模塊發(fā)送UI更新消息至UI層。
7.如權(quán)利要求6所述的裝置,其特征在于,所述UI操作消息發(fā)送單元包括:
指令識別子單元,用于由UI層接收用戶輸入的UI操作指令,識別出所述UI操作指令中包含的模塊標(biāo)識和功能操作;
狀態(tài)查詢子單元,用于由UI層調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢與所述UI操作指令關(guān)聯(lián)的功能模塊的功能狀態(tài),根據(jù)所述功能狀態(tài)確定所述UI操作指令對應(yīng)的功能操作和與所述功能操作對應(yīng)的功能狀態(tài);
UI操作消息發(fā)送子單元,用于由UI層將包含所述模塊標(biāo)識、所述功能操作和與所述功能操作對應(yīng)的功能狀態(tài)的UI操作消息發(fā)送至消息分發(fā)模塊。
8.如權(quán)利要求6所述的裝置,其特征在于,所述功能模塊至少為一個;當(dāng)所述功能模塊大于一個時,所述功能模塊并行處理由消息分發(fā)模塊分發(fā)過來的功能消息。
9.如權(quán)利要求6或8所述的裝置,其特征在于,所述分發(fā)單元包括:
關(guān)聯(lián)查詢子單元,用于由消息分發(fā)模塊在獲取UI層發(fā)送的UI操作消息后,根據(jù)所述UI操作消息調(diào)用接口函數(shù)從公共狀態(tài)模塊中查詢所述模塊標(biāo)識所屬的主功能模塊是否存在相互關(guān)聯(lián)的次功能模塊;
第一分發(fā)子單元,用于如果不存在相互關(guān)聯(lián)的次功能模塊,由消息分發(fā)模塊直接分發(fā)所述UI操作消息至所述模塊標(biāo)識所屬的主功能模塊中;
第二分發(fā)子單元,用于如果存在相互關(guān)聯(lián)的次功能模塊,由消息分發(fā)模塊根據(jù)預(yù)設(shè)規(guī)則將所述UI操作消息分解成與所述主功能模塊和次功能模塊對應(yīng)的功能消息,并將分解后的功能消息對應(yīng)分發(fā)至所述主功能模塊和所述次功能模塊中。
10.如權(quán)利要求9所述的裝置,其特征在于,所述第二分發(fā)子單元包括:
關(guān)聯(lián)狀態(tài)查詢子單元,用于由消息分發(fā)模塊調(diào)用接口函數(shù)查詢所述次功能模塊的當(dāng)前功能狀態(tài);
沖突確定子單元,用于由消息分發(fā)模塊確定所述次功能模塊的當(dāng)前功能狀態(tài)與所述UI操作消息中包含的與所述功能操作對應(yīng)的功能狀態(tài)是否存在沖突;
第三分發(fā)子單元,用于如果存在沖突,由消息分發(fā)模塊生成包含與所述UI操作消息中包含的功能操作相反的功能操作的次功能消息,按照預(yù)設(shè)優(yōu)先級將所述UI操作消息和所述次功能消息分發(fā)至對應(yīng)的主功能模塊和次功能模塊中。