日本一区二区免费播放_麻豆导航_久久精品99_国产性av_色婷婷噜噜久久国产精品12p_av福利资源_精品综合久久

當(dāng)前位置:首頁 > 網(wǎng)站舊欄目 > 學(xué)習(xí)園地 > 設(shè)計軟件教程 > 高舉Domain Specification,應(yīng)用函數(shù)式編程

高舉Domain Specification,應(yīng)用函數(shù)式編程
2010-01-14 22:32:59  作者:  來源:
balaschen發(fā)帖說要提供sql的對象化拼裝,buuawhl老大說思路不對,可是ajoo(我的偶像。┮舱f要整整這個sql拼裝(偶像啊,還是把高貴時間用在刀刃上吧)。

讓我忍不住跳出來新開一帖討論(觀點不一定正確,還是嘗試中),
我是同意buuawhl的,不過可能出發(fā)點不一樣。
buuawhl 寫道

組合子不錯,不過用錯了地方。
SQL拼裝采用組合子(比如包括Hibernate Criteria)這種思路,完全是畫蛇添足,一無是處,成事不足,敗事有余。


我是傾向于DDD中提出的selection的Specification的手段。
我們工作的目標(biāo)是什么:selection的查詢邏輯。
換句話說我們是組合查詢邏輯的。不過是因為repository是數(shù)據(jù)庫類型,因而內(nèi)部需要組合sql語句。
那么組合的對象應(yīng)該是更高一層抽象的specification,而不是sql的對象化形式expression,

而這樣做兩個好處是:
第一,解決了dao的在設(shè)計分層中的尷尬地位。典型的分層體系如appfuse,
查詢本身是一種邏輯,而dao獨立層次的存在把不同的查詢logic來了個大集中,這樣的用法就很尷尬。
而如springside則好些,雖然把dao作為service來用,但是criteria的組裝獨立于dao之外。
而DDD提出的Specification,就很好的解決的這一分層問題。

第二,提供了一定的函數(shù)式編程能力(組合子編程), 提供三種簡單的操作and, or和not.
我以為DDD在這里不考慮去組合基本的Expression,
而是從業(yè)務(wù)角度考慮,組合的是specification,返回的是domain object list(這樣更是顯示的和sql中的projection區(qū)別開)

當(dāng)然這樣的組合能力可能不強,不過基本可用(本句話未經(jīng)驗證,還沒有來得及做)。
至于內(nèi)部即便是用sql也是可以的,如果覺得被"污染"了(buuawhl老大語錄),就參考ibatis的思路做。
安徽新華電腦學(xué)校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
主站蜘蛛池模板: 欧美做受 | 男啪女色黄无遮挡免费视频 | 国产成人视屏 | 欧美在线一二三区 | 精品三级视频 | 日日日干 | 日本不卡一区二区三区四区 | a视频在线观看免费 | 国产日韩欧美一区二区三区视频 | 久久精品无遮挡一级毛片 | 日韩精品手机在线 | 久久99热精品这里久久精品 | 国产高清视频免费人人爱 | 亚洲aaa视频| 日本黄a三级三级三级 | 天天澡天天干 | 国产成人综合在线观看网站 | 久久人人草 | 日本高清不卡网站免费 | 天天摸天天添人人澡 | 日韩一级片免费 | 99爱视频精品免视看 | 日本黄色免费在线观看 | 欧美性猛交xxxx免费 | 色婷婷天天综合在线 | 欧美三级在线视频 | 欧美经典剧情系列h版在线观看 | 午夜视频十八嗯嗯啊免费 | 欧美系列在线播放 | 另类综合视频 | 亚洲人和日本人jizz | 免费看黄软件. | 一级毛片免费播放视频 | 成人免费视频观看无遮挡 | 中文字幕一级片 | 秋霞影院18岁特色大片 | 欧美大片天天免费看视频 | 黄频网站免费大全在线观看 | 国内精品久久久久久 | 欧美福利片在线观看 | 两个人看的www中文字幕 |