亚洲成人一区在线观看_天堂网www_国产精品久久9_中文在线播放_伊人天天_久久精品久久久精品美女

當前位置:首頁 > 網站舊欄目 > 學習園地 > 設計軟件教程 > 高舉Domain Specification,應用函數式編程

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

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

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


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

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

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

當然這樣的組合能力可能不強,不過基本可用(本句話未經驗證,還沒有來得及做)。
至于內部即便是用sql也是可以的,如果覺得被"污染"了(buuawhl老大語錄),就參考ibatis的思路做。
安徽新華電腦學校專業職業規劃師為你提供更多幫助【在線咨詢
相關熱詞搜索:函數 編程 應用
主站蜘蛛池模板: 国产一级视频 | 精品无码久久久久国产 | 成人做爰69片免费 | 久久三区 | 女人毛片 | 亚洲人久久 | 天堂国产| 日本福利视频免费观看 | 亚洲免费色 | 欧美伦理电影一区二区 | 91久久夜色精品国产网站 | 国产视频一区在线 | 一级在线毛片 | 拍拍无遮挡人做人爱视频免费观看 | 日韩精品在线观看视频 | 亚洲福利小视频 | 色九九 | 黄色a在线观看 | 男人天堂a | 欧美国产日韩一区 | 精品国产一区二区三区久久久 | 北条麻妃99精品青青久久主播 | 成人综合av | 丝袜美腿一区二区三区 | 成人午夜在线 | 99青青草 | 亚洲综合首页 | 中文在线播放 | 精品www| 超碰人人爽 | 青青草在线免费视频 | 三级视频在线观看 | 亚洲大片69999 | 久久综合一区二区三区 | 日韩国产欧美视频 | 亚洲色图图片 | 亚洲伊人久久综合 | 日本久久久久 | 99精品一区二区三区 | 国产精品乱码一区二区三区 | 久久精品这里热有精品 |