国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

openfans領域模型驅動的嘗試

2019-11-18 12:31:36
字體:
來源:轉載
供稿:網友

領域模型驅動( Domain Driven Design ),很熱的名詞。 Openfans ,不太熱的網站。 Openfans 就不多介紹了,網站用 sPRing+hibernate 為核心的一堆開源軟件構建。有了 spring 的 IOC 和 hibernate 的 ORM ,打著 ddd 的旗號也就名正言順了很多。

言歸正傳,就講 openfans 現在經 ddd 思想改造過的模型。整體上看還是普通的三層架構體系:展現層、業務層、持久層。展現層用 spring mvc ,力圖做到只是展示相關,避免出現業務邏輯。再具體細分,就是 jsp 頁面只有展示邏輯,主要使用 jstl 完成顯示功能。 Controller 負責從頁面獲得參數、把數據傳回頁面、控制頁面流傳和調用業務層的接口。持久層使用 hibernate ,在設計上我不是按 dao 方式為每個對象建立相應的 dao ,也不是 ddd 推薦的每個 domain 一個 repository ,而是分成了 Persistence 和 Fetcher2 個接口。 Persistence 處理持久相關如 save 和 remove 方法, Fetcher 則處理 get 相關。這樣分的原因也很簡單, persistence 是很穩固的,對象都可以共用一個接口如 save ( Object ),而 fetcher 就千變萬化,需要分頁、排序等接口。

這樣設計是與業務層架構相關的。我采用的是 domain 對象(簡稱 DO ) + 一層薄薄 façade 的方式。 DO 處理自身的邏輯,包括持久功能。本身 DO 是沒有持久能力的,需要依靠注入的 persistence 接口,這里就體現按 Persistence 和 Fetcher 分開的一個好處, persistence 所有 DO 可以共用一個,給編程帶來了方便。 Openfans 中采用的是 DO 繼續一個抽象 PersistentObject 類的方式,這樣 DO 方便的獲得了注入的能力和持久的能力。這樣做有何優缺點還需要做些討論,為了方便我也就先這么用。 PersistentObject 代碼如下:

public abstract class PersistentObject implements NeedPersist {

       private Persistence persistence;

 

       public void save() {

              persistence.save(this);

 



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 古丈县| 蓝山县| 德阳市| 改则县| 北川| 邵阳县| 平顶山市| 忻城县| 龙江县| 巴林右旗| 大方县| 志丹县| 昌宁县| 赤水市| 栾川县| 叙永县| 虹口区| 正阳县| 都昌县| 新巴尔虎左旗| 旅游| 文昌市| 新竹县| 济南市| 淮南市| 乡宁县| 大冶市| 崇阳县| 华坪县| 兰州市| 宾川县| 长葛市| 灵石县| 武清区| 岳普湖县| 靖边县| 沽源县| 来凤县| 台湾省| 木兰县| 邛崃市|