事務(wù)—事務(wù)模式

程序猿基礎(chǔ)知識(shí)的學(xué)習(xí)、理解、整理——事務(wù)(方方土)

什么是事務(wù)模式?這里提到的事務(wù)模式,主要是指在系統(tǒng)設(shè)計(jì)過(guò)程中的設(shè)計(jì)模式,主要闡述的是事務(wù)在那一層控制的概念,分為以下三種事務(wù)模式:客戶端擁有事務(wù)模式,領(lǐng)域服務(wù)擁有事務(wù)模式,服務(wù)端代理?yè)碛惺聞?wù)模式;

可能你要問(wèn)了,我作為一個(gè)開(kāi)發(fā)人員,我對(duì)事務(wù)很熟悉,我也很了解事務(wù)的模型,我可以很好地處理好我程序的事務(wù)問(wèn)題,為什么還要有一個(gè)事務(wù)模式的概念呢?

確實(shí),對(duì)于一個(gè)小型的demo或者對(duì)于一個(gè)有單獨(dú)個(gè)人完成的整體項(xiàng)目而言,沒(méi)有必要提及事務(wù)模式的概念,但是在一個(gè)大型的項(xiàng)目中,特別是傳統(tǒng)的三層架構(gòu)或者四層架構(gòu)的項(xiàng)目中,有一群開(kāi)發(fā)人員并發(fā)開(kāi)發(fā)的項(xiàng)目中,就要去考慮事務(wù)模式的問(wèn)題了

在說(shuō)以下三種不同模式之前,要先說(shuō)清楚一個(gè)程序的層次是怎么樣的?

客戶端(可以是單獨(dú)的一個(gè)客戶端程序,或者是三層架構(gòu)中的展現(xiàn)層):
服務(wù)端:服務(wù)器端的“代理層”,(一般三層架構(gòu)不包含這層,可以用代理模式或者命令模式來(lái)實(shí)現(xiàn))
服務(wù)端:服務(wù)器端的“領(lǐng)域?qū)印?,(三層架?gòu)中的service層)
服務(wù)端:服務(wù)器端的“DAO層”,(三層架構(gòu)中的數(shù)據(jù)訪問(wèn)層)

基于上面的層次劃分,就比較好理解以下的三種模式了
1、客戶端擁有事務(wù)模式:事務(wù)控制在客戶端
2、領(lǐng)域服務(wù)擁有事務(wù)模式:事務(wù)控制在服務(wù)端“領(lǐng)域?qū)印?br> 3、服務(wù)端代理?yè)碛惺聞?wù)模式:事務(wù)控制在服務(wù)端“代理層”

很簡(jiǎn)單,這三種事務(wù)設(shè)計(jì)模式的主要區(qū)別就在于這里,那么遵循設(shè)計(jì)模式是否有必要?那么在什么情況下選擇怎么樣的事務(wù)設(shè)計(jì)模式?這三種設(shè)計(jì)模式的最佳實(shí)踐又是怎么樣的呢?
1、極端來(lái)說(shuō),不采用這些設(shè)計(jì)模式,你也可以把事務(wù)處理好,帶式帶來(lái)的問(wèn)題是不統(tǒng)一了,凌亂了,整個(gè)項(xiàng)目不好管理了。所以從這一點(diǎn)上來(lái)說(shuō),事務(wù)的設(shè)計(jì)模式,應(yīng)該是架構(gòu)師在分層的時(shí)候一定要考慮好的事情;
2、萬(wàn)不得已情況下采用客戶端事務(wù)模式,推薦使用領(lǐng)取服務(wù)事務(wù)模式,如果在你的層次劃分中,有代理層,而且在你的設(shè)計(jì)過(guò)程中,領(lǐng)域服務(wù)劃分粒度的考慮,不以一個(gè)事務(wù)為粒度來(lái)劃分的話,那么推薦使用服務(wù)端代理事務(wù)模式;
3、結(jié)合著這三種事務(wù)的設(shè)計(jì)模式,回想一下以前提到的事務(wù)設(shè)計(jì)模型,是不是發(fā)現(xiàn),聲明式事務(wù)幫我們解決了很多問(wèn)題,如果還采用本地事務(wù)模型,那么完了,開(kāi)發(fā)人員就無(wú)法聚焦于業(yè)務(wù)邏輯的開(kāi)發(fā),而整天在處理一些事務(wù)的相關(guān)問(wèn)題了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容