0

我正在学习一些模式,工作/存储库的统一......网上有一些例子,但没有人连接到多个数据库。

在我的应用程序中,我几乎总是需要从数据库中获取一些对象(例如用户)和其他一些对象,我该如何使用这些模式?(因为我是这个主题的新手,所以必须有一个明确的例子)

谢谢!

4

1 回答 1

0

作为一般参考,我建议您和任何有兴趣访问http://martinfowler.com/eaaCatalog/index.html的人 ,其中包含 UML 的集合和对企业软件最常见设计模式的解释在您的具体情况下,工作的统一性是特别适合与Data MapperIdentity Map一起使用。我想要理解 100% 的工作统一性,还必须掌握其他 2 个模式。

为了回答您的问题,我认为您可以创建一个统一的工作并将其保存在注册表中,因此它在整个应用程序中都可用。统一必须是单例,因为您需要确保中央网关与数据库进行通信。在您的工作统一中,您将拥有一个身份映射,它是内存中代表您的模型的有价值对象的集合,该模型负责在所有应用程序操作期间维护对象状态。您的服务层将使用统一体对模型执行 CRUD 操作并提交这些更改。要使用更多数据库,我想您需要利用某种命名空间访问存储在 Identity 映射中的对象。您可以选择命名空间的位置:工作统一或身份映射。该决定实际上取决于您的应用程序和用例。您可能需要连接到不同的数据库以在读取和写入之间划分职责或尝试集成异构数据源。另一种方法是将 DB 对象注入到统一的工作方法中,在这种情况下,应用程序可以 100% 控制使用哪个数据库。

据我所知,存储库模式可以帮助您抽象模型的存储,并且当您使用异构数据源时它特别有用,您必须为您的应用程序提供这种灵活性。因此,我想它与工作统一和数据映射层完全不同。

于 2012-10-30T15:32:14.793 回答