在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ 如何正確的使用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)?

如何正確的使用領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)(DDD)?

以一個(gè)添加用戶場(chǎng)景為例子。

首先前臺(tái)傳來(lái)一個(gè)user對(duì)象,

然后需要對(duì)這個(gè)對(duì)象進(jìn)行檢驗(yàn),

檢驗(yàn)用戶名全英文字母,

查詢數(shù)據(jù)庫(kù),用戶名不存在,

則可以進(jìn)行插入操作

這樣的場(chǎng)景,應(yīng)用層,領(lǐng)域?qū)討?yīng)該怎么寫(xiě),求各位給出具體一點(diǎn)的代碼,謝謝。

service對(duì)應(yīng)應(yīng)用層,調(diào)用entity實(shí)體層,存儲(chǔ)庫(kù)repository,dao層store。

還有值對(duì)象怎么使用。

回答
編輯回答
青黛色

1.首先在領(lǐng)域?qū)訉?xiě)User的Poco對(duì)象,然后在領(lǐng)域?qū)覷ser對(duì)象的邏輯中有個(gè)CreateUser方法,傳入U(xiǎn)ser對(duì)象,對(duì)傳入的User對(duì)象的屬性賦值到this,然后返回this。
2.在倉(cāng)儲(chǔ)層User倉(cāng)儲(chǔ)中實(shí)現(xiàn)兩個(gè)方法,第一個(gè)方法是查詢數(shù)據(jù)庫(kù)這個(gè)用戶是否存在,第二個(gè)方法是AddUser,這里要注意的是AddUser利用數(shù)據(jù)訪問(wèn)框架的預(yù)添加,而不是完成真正的持久化。
3.在應(yīng)用服務(wù)層中的CreateUser方法中要傳遞UserDTO對(duì)象,首先對(duì)UserDTO做檢查比如英文,然后將UserDTO屬性賦值給User對(duì)象屬性,然后調(diào)用倉(cāng)儲(chǔ)中的檢查用戶,然后調(diào)用領(lǐng)域邏輯中的CreateUser方法,然后使用倉(cāng)儲(chǔ)調(diào)用AddUser方法,最后利用數(shù)據(jù)庫(kù)框架的持久化方法完成持久化。
4.值對(duì)象可以把它理解為就是一個(gè)領(lǐng)域?qū)ο?,有自己的屬性和方法,然后把這個(gè)值對(duì)象做成包含它的領(lǐng)域?qū)ο蟮囊粋€(gè)屬性。

2017年5月14日 20:52