其他分享
首页 > 其他分享> > 哪个是存储库模式?

哪个是存储库模式?

作者:互联网

我的域实体排列成一棵树:


-儿童1
-儿童1.1
-儿童1.2
-儿童2
-儿童2.1
-儿童2.2

关于如何围绕这些域对象设计存储库,我们得出了2条(相当强烈的)见解:

意见1:
我需要2个存储库Child1Repository&由RootFacade / RootManager类管理的Child2Repository可以在存储库上调用适当的方法. 2个子存储库仅处理DAL操作,而RootFacade是BLL. RootFacade将DTO公开给应用程序,而内部的所有3个存储库都使用域对象

意见2:
我需要1个处理所有内容的存储库RootRepository(BLL DAL).存储库在内部使用域对象时公开DTO

我想对这2点和这实际上是实现存储库的方法.

谢谢你的帮助

解决方法:

类应该承担的责任不应超过他们所需要的,而且肯定听起来像RootRepository的方法是错误的选择.它吸收了太多的复杂性,并导致了太多的实体.在您提供的两个选项中,第一个是更好的选择:拥有更多的存储库,每个存储库负责您自己域的一角.

但是,那还不是很清楚,为什么我根本没有RootManager.我宁愿有一系列DomainObjectRepository,它们每个都在内部管理自己的业务逻辑,并且只公开相关的公共操作,然后将实际的数据库操作推迟到数据访问对象DomainObjectDao.拥有无所不知的全业务逻辑类是一种怪异的代码气味,在这种特殊情况下会产生一些企业过大的杀伤力.

标签:repository,c,design-patterns
来源: https://codeday.me/bug/20191210/2100592.html