项目总结(采用领域驱动开发方式)
生活随笔
收集整理的這篇文章主要介紹了
项目总结(采用领域驱动开发方式)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在做一個項目。采用J2EE作為開發平臺,通過領域驅動開發(DDD)的方式進行開發。 首先說一下系統總體架構。系統分為表現層,業務層(業務層分為應用層和領域層),持久層, 其中表現層用Struts MVC框架,業務層用Spring框架,持久層用hibernate框架,現在主 要總結一下業務層和持久層。 業務層:根據DDD,業務層應該分為應用層和領域層,其中應用層的無狀態的服務通過 Spring?IOC容器進行裝配和管理。核心業務邏輯放到領域層,而應用層只是一個很薄的層, 指揮領域層的模型對象完成業務操作。領域模型根據DDD分為了實體,值對象,和服務,其 中實體是系統中一些需要記錄和跟蹤的對象,比如Account對象等,值對象則是一些對實體 的描述,以及實體的狀態等,比如項目的站內信中,可以將消息的狀態做為抽象消息的值對 象。為了提高實體的內聚性,將一些不是實體的職責分配給領域層服務對象。當然DDD中還 有關于聚合,工廠,倉庫,個人理解工廠主要是用來創建對象的,工廠控制了對象生命周期 的開始,而對象的生命周期不可能只有開始這么簡單,所以倉庫就發揮了作用,倉庫就是用 來管理對象的中間狀態的。倉庫可以通過緩存來管理對象,提高系統的性能。至于事務處理, 因為項目不需要分布式,所以直接采用JDBC事務,具體就是通過Spring管理的hibernate 事務來實現,將事務邊界界定在應用層服務的開始和結束,這樣也充分發揮Spring的聲明式 事務管理功能。 持久層采用hibernate框架來完成。首先定義一個支持CRUD操作的泛型DAO,然后利用 Spring支持回調模板類(HibernateTemplate)來實現最基礎的CRUD操作,其它的Dao接 口繼承泛型接口。這樣CRUD操作在統一的基類中完成,并且還可以利用泛型帶來的安全性 檢查。 最后先請教一下各位兄弟,我對于應用層服務和領域層服務的劃 分不是很清楚,請問一下各位具體的劃分標準是什么?各位在項 目中怎么做的?我現在是把應用層服務當做Facade來用,用來 封裝業務邏輯,各位兄弟還有什么好的方法嗎?請指教一下,謝了。
轉載于:https://blog.51cto.com/yuquan/360352
總結
以上是生活随笔為你收集整理的项目总结(采用领域驱动开发方式)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu系统设置开机自启动
- 下一篇: JTAG 案例