Spring構建應用系統的最佳架構與模式實踐(1)
蔡 超SCEA,SCBCD,MCSD,IBM RUP Specilist
北京天融信軟件架構師
SUN,Microsoft培訓中心特邀高端教師
常年提供架構咨詢服務
chaocai2001@yahoo.com.cn ,010-82776427
引言
在使用Spring構建應用時和采用EJB構建應用一樣同樣也存在不少常用模式和最佳實踐,當然很多Core J2EE Pattern仍然是我們構建spring應用中的優秀模式,不過有的也不再適用了(如:IoC的應用使得Service Locator不再適用,Hibernate取代Entity Bean使得DTO不再適用等)。
下文是一些在以Spring為核心的架構中的常見模式和架構最佳實踐。
圖表 1 Spring應用常見架構模式列表
DAO模式
雖然采用了諸如Hibernate這樣的O/R Mapping工具或是iBates這樣的SQL Mapping工具但是采用DAO模式仍有相當好處。
在實際應用中我們常會遇到如下問題:
1 性能問題:由于性能問題我們可能要改變數據訪問方式,如采用JDBC替換Hibernate這時,這時如果采用了DAO模式,數據訪問被有效的封裝和業務邏輯完全分離,易于實現替換。
2 移植問題:需要支持多種數據庫,DAO模式仍然是一種穩妥的選擇。雖然諸如Hibernate及iBates也提供很好的數據庫無關性,但如果使用某些數據庫的特殊功能時,就會出現問題。
當然,對于是否采用DAO模式也不可一概而論,應為他畢竟會增加應用的開發復雜性。個人認為很關鍵的一個判定條件是業務邏輯是否會和持久化邏輯混合。
Application Service模式
封裝一定的業務邏輯和功能,提高復用性,即防止Façade和業務對象的臃腫。注意在此可以應用Command模式及Strategy模式提供系統可維護性和可擴展性。
這個模式很重要,但常常被大家忽略,這時應為我們常會把邏輯放在Façade中,其實這是很錯誤的。例如:我們可能會提供多種不同Façade以適應不同的訪問方式,這樣就會出現大量重復的業務邏輯代碼。
Façade模式
為客戶端提供訪問業務組件的統一模式。便于實現對不同訪問方式的支持(如:遠程或本地)。特別在遠程調用時通過暴露粗粒度的接口,提高系統的性能。
同時,可以根據客戶的不同,通過不同Façade來控制客戶的操作。
posted on 2007-05-08 14:25 超越巔峰 閱讀(1430) 評論(1) 編輯 收藏 所屬分類: Design Pattern 、Java EE