建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

ag真人百家家樂網站:對J2EE應用系統分層設計的思考

?

J2EE分層設計是Java企業利用的最基礎的設計思惟。

從最老例的分層布局來說,系統層次從上到下依次為:

體現層:主如果客戶真個展示。

辦事層:直接為客戶端供給的辦事或功能。也是系統所能對外供給的功能。

領域層:系統內的領域活動。

DAO層:數據造訪工具,經由過程領域實體工具來操作數據庫。

此中有些指示原則:

1、上層老是依附其下層,依附關系不跨層。

2、體現成除外,同一層之間措施不容許互相調用。這是實際開拓中一些開拓者輕易范的差錯!假如然是同一層之間存在措施調用,必要留意,這些調用都是一些上層弗成見措施,比如一些對象措施等。

3、統統從辦事層啟程,從系統必要供給的功能進行闡發,確定Service接口中的措施。ag真人百家家樂網站而不是從數據庫的表啟程,創建DAO,再創Domain,然后Service,這實際上是對系統分層的誤解。

4、系統最核心的設計便是將系統中的實體劃分為領域模型。在此根基上設計數據的DAO層,并將這些活動裸露給辦事層,辦事層的實現依附于領域活動。

5、每個接口的職責范圍明確有界。

在我所做的系統中,經常看到一些糟糕的編碼:系統設計從表開始,一個表對應一個DAO,一個DAO對應一個domain,一個Domain對應一個Service,實際上Service的接口和DAO的接口基礎上完全一樣!導致Service的接口措施超多!到了體現層,前臺法度榜樣員在寫Action的時刻,Action中反復的調用Service措施,代碼不堪入目。

精確的設計應該ag真人百家家樂網站是,一個領域活動會聚合對應一個或一組DAO,來完成一個領域活動。而一個辦事可能包孕兩個領域活動,比如一個轉賬的營業,對應兩個領域活動。兩個帳戶的金額分手發生變更,必要操作一組領域活動,而每個活動必要操作很多表(調用多個DAO)。 事務的節制我們可以放到Service層。

今朝,越來越多的架構師愛好領域模型驅動設計,針對系統的領域模型建模,然后上層直接是Service,Service下面便是領域活動層Activity,從而去掉落了DAO層ag真人百家家樂網站,這樣做的優點是系統設計思路更清晰,目標更明確。可以避免上面所說的一個表對應一個DAO、Service的環境。

但毛病是當領域活動發生變更的時刻,會引起領域活動層代碼的變更。并且,當要替換持久化框架或者技巧時刻,領域活動要從新實現。

但綜合斟酌起來,這樣帶來的優點也很多,而實際上替換數據庫和持久化框架的環境很少,是以這樣的設計也是ag真人百家家樂網站有其合理性一壁的。這樣做實際上是將原本的DAO和Domain層合并為一個Activity.但上層的設計思路照樣同等的。

著實ag真人百家家樂網站Service層的設計也很考究,此中便是要節制Service的數量,從Service層往下,接口數量逐層增添。平日將一個模塊的辦事都集中到一個Service中來處置懲罰。

每層中的每個接口都應該關注的是自己的那一塊,而不是吃著碗里看著鍋里,牛槽伸出個狗舌頭,最范例的例子便是一個DAO中胡亂操作其余表。這種雜亂的實現只會置項目經理與逝世地。也會為軟件的掩護帶來很大年夜價值。

筆者曾碰到這樣的團隊,短缺對全部項目的整體設計,一個表一個DAO,對應一個Service,系統也不大年夜,三四十張表,然則機能相稱地下,常常down機。

終極發明,掉敗不是開源框架和數據庫以及利用辦事器和硬件設置設置設備擺設擺設的錯,根源在于卑劣的設計導致。

盼望今后大年夜家在做項目的時刻能留意點。

原文出處:http://lavasoft.blog.51cto.com/62575/83974

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
大乐透预测号码 五子棋攻略 dnf赚钱超快方法最新 星空棋牌舟山大厅下载 18023足彩进球彩开奖 美女麻将通关图片 浙江20选5开奖号码是 双色球基本走势图推荐 福彩老时时彩在哪查 国民彩票安卓