java中map用法 寫JAVA后端代碼時邏輯混亂怎么辦?
寫JAVA后端代碼時邏輯混亂怎么辦?后端代碼復(fù)雜度通過分拆、分而治之來解決。首先通常通過拆分工程、多個工程間可以存在依賴關(guān)系,但一定要單向依賴,不能成環(huán),如果有環(huán)就得考慮把環(huán)形依賴部分拆分出來成為單獨
寫JAVA后端代碼時邏輯混亂怎么辦?
后端代碼復(fù)雜度通過分拆、分而治之來解決。首先通常通過拆分工程、多個工程間可以存在依賴關(guān)系,但一定要單向依賴,不能成環(huán),如果有環(huán)就得考慮把環(huán)形依賴部分拆分出來成為單獨的工程,來解決環(huán)形依賴。
對于工程里的代碼可通過橫向拆分、縱向分拆來降低復(fù)雜度。橫向分層按controler、service、dao、sqlmap,縱向分模塊system、biz1、biz2……bizN,但在數(shù)通暢聯(lián)內(nèi)部,橫、縱向拆分相結(jié)合模式,如下圖:
首先通過橫向分拆出controller、cxmodule、module等層次,module作為業(yè)務(wù)層根據(jù)業(yè)務(wù)功能的不同進行縱向分拆,分成analysis、dwmodel、metadata、schedule等功能模塊,在各個功能模塊中,橫向分拆出exteral、handler、service、sqlmap,其中exteral負責(zé)數(shù)據(jù)接口,提供可調(diào)用的服務(wù)和接口;handler作為控制層,通過調(diào)度代碼負責(zé)業(yè)務(wù)的調(diào)度,以及一些參數(shù)封裝、結(jié)果集處理等操作;service則是負責(zé)具體業(yè)務(wù)的業(yè)務(wù)處理層,除了增刪改查外,一些貼近業(yè)務(wù)的功能也會在service中完成;sqlmap用于定義操作數(shù)據(jù)庫的SQL語句。
通過這種分層的方式,實現(xiàn)代碼層次的分隔,做到各守各層、結(jié)構(gòu)清晰,對于一些跨模塊調(diào)用的接口,如在不同模塊中需要對同一張數(shù)據(jù)表進行操作時,可以將接口提升到上層cxmodule中作為公共接口,實現(xiàn)類和方法的復(fù)用;對于一些可復(fù)用的、相對獨立的功能,可以通過在cxmodule中定義一個干凈的接口,在module的功能模塊中通過實現(xiàn)接口實現(xiàn)業(yè)務(wù)邏輯,而不使用spring的事務(wù)管理機制,降低代碼的復(fù)雜度。