综合二区_欧美成人综合_欧美成人二区_a黄视频_亚洲视频在线播放_一区二区三区视频免费看

当前位置:首页 > 网站旧栏目 > 学习园地 > 设计软件教程 > 高举Domain Specification,应用函数式编程

高举Domain Specification,应用函数式编程
2010-01-14 22:32:59  作者:  来源:
balaschen发帖说要提供sql的对象化拼装,buuawhl老大说思路不对,可是ajoo(我的偶像啊)也说要整整这个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的思路做。
安徽新华电脑学校专业职业规划师为你提供更多帮助【在线咨询
相关热词搜索:函数 编程 应用
主站蜘蛛池模板: 国产日韩欧美一区二区久久精品 | 国产视频一区二区三区四区五区 | 国产精品一区99 | k8久久久一区二区三区 | 99热婷婷| 日日舔夜夜操 | 成年在线免费视频 | 91视频在线免费 | 91视频免费高清 | 182tv成人福利视频免费看 | 在线男人天堂 | 国产精品揄拍一区二区久久 | 国产成人啪午夜精品网站男同 | 在线一区二区三区在线一区 | 亚洲视频三区 | www.日韩在线视频 | 亚洲手机免费视频 | 亚洲专区一区虐另类调教 | 国产激情91久久精品导航 | 免费成人午夜视频 | 成人av一区二区亚洲精 | 91最新地址永久发布页 | 免费人成网 | 91视频在线免费观看 | 一区二区在线免费看 | 天天爽夜夜爽人人爽一区二区 | 久久久成人免费 | 日本在线观看www | 免费成人午夜视频 | 国产一级电影免费观看 | 国产成人啪午夜精品网站男同 | www.久久久久久久久久久 | 亚洲欧洲精品久久 | 夜夜操操操 | 国产精品夜夜春夜夜爽久久小 | 小早川怜子一区二区的演员表 | 懂色av一区二区三区四区 | 国产一区二区三区高清视频 | 91高清在线 | 国产中文一区 | 国产在线精品观看 |