加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

java – 方面是否替换存储库?

发布时间:2020-12-15 01:44:57 所属栏目:大数据 来源:网络整理
导读:我刚刚开始尝试Spring Roo.它可以很好地帮助构建具有集成持久性的域模型.由于它在方面添加了持久性功能,我开始考虑以下问题: Roo在一个方面向实际的类/实体添加finders(从数据库中加载满足变量条件的类的实例).在DDD中,这是IMHO的存储库的责任.存储库是显示

我刚刚开始尝试Spring Roo.它可以很好地帮助构建具有集成持久性的域模型.由于它在方面添加了持久性功能,我开始考虑以下问题:

Roo在一个方面向实际的类/实体添加finders(从数据库中加载满足变量条件的类的实例).在DDD中,这是IMHO的存储库的责任.存储库是显示在设计中的显式类.当然,作为一个方面,存储库功能隐藏在实体中并且几乎不可见.

所以这里有一个问题:一个方面是否是显式存储库类的真正替代品? Roo AOP方法有任何缺点吗?

最佳答案
从用户的角度来看,向域类添加查找器会感觉更自然,但它会混合您的图层. Grails使用相同的方法添加静态finder *()save(),…方法.

除了aestetics之外,它不会在Web应用程序设置中使用时具有实际缺点:
您的域类现在绑定到您的数据库.如果通过RMI或HttpInvoker将这些对象传输到富客户端,则客户端不能并且通常不会使用find *方法,因为客户端上没有可用的会话/数据库连接.

我通常更喜欢允许域类引用服务层接口以防止贫血域模型(http://martinfowler.com/bliki/AnemicDomainModel.html).这有其自身的一些缺点,但至少提供了明确的界限.在客户端上,服务接口后面的具体实现可以只代理对服务器的所有方法调用(或者只使用带有spring remoting的synamic代理或类似的).

所以回答你的问题:它可能是一个替代品,但你应该知道可能的负面后果,使你的域类(即你的核心业务逻辑)在系统之间的可移植性降低.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读