今天看了一下hibernate的 formula,第一感觉是特别方便,给编程节省了很多代码,再仔细一想 这不是在domain object中包含了dao操作了吗?
[color=blue]也就是说通过dao方法查询出来的对象又包含了dao操作[/color]这个问题以前曾经思考过 它到底和不合理呢?这种方式的出现是必然还是偶然?我们来分析一下
[code]User user = userDao.findUser(userid);
List list = user.getRoles();[/code]
上面这几行代码没有问题 我们在开下面的代码
[code]User user = userDao.findUser(userid);
User user2 = user.findByName(username);[/code]
这两组代码之间的区别在那儿呢?
第一组代码是返回的不是User对象或者User数组
而第二组代码返回的仍然是User对象或者User数组
如果上面两组的代码调用到此结束,那是没有问题的 不会造成循环调用
但是如果继续调用呢? 也没有问题 由此可以推出dao和domain可以设计成一个类就是所谓的rich domain object,那么为什么实际上这样用的人特别少呢?
[color=blue]也就是说通过dao方法查询出来的对象又包含了dao操作[/color]这个问题以前曾经思考过 它到底和不合理呢?这种方式的出现是必然还是偶然?我们来分析一下
[code]User user = userDao.findUser(userid);
List list = user.getRoles();[/code]
上面这几行代码没有问题 我们在开下面的代码
[code]User user = userDao.findUser(userid);
User user2 = user.findByName(username);[/code]
这两组代码之间的区别在那儿呢?
第一组代码是返回的不是User对象或者User数组
而第二组代码返回的仍然是User对象或者User数组
如果上面两组的代码调用到此结束,那是没有问题的 不会造成循环调用
但是如果继续调用呢? 也没有问题 由此可以推出dao和domain可以设计成一个类就是所谓的rich domain object,那么为什么实际上这样用的人特别少呢?