Architecture 管理多个持久性机制

Architecture 管理多个持久性机制,architecture,Architecture,我有一组可能以不同方式持久化的业务对象,尽管对于应用程序的任何给定配置,只有一个持久化机制处于活动状态。持久性是通过接口处理的 在我看来,显而易见的体系结构是将一个配置的所有持久化对象放在一个包中,将不同配置的所有对象放在另一个包中。但似乎这个计划最终可能会有很多不同的包,而不是包管理问题。这个问题还有其他好的解决方案吗?我在公司通过制作一个可重用的存储库实现了这一点 基本上,我创建了一个带有接口的存储库抽象,它对传入的对象或对象集执行基本的CRUD操作。然后我使用各种持久性机制实现了它。该库可

我有一组可能以不同方式持久化的业务对象,尽管对于应用程序的任何给定配置,只有一个持久化机制处于活动状态。持久性是通过接口处理的


在我看来,显而易见的体系结构是将一个配置的所有持久化对象放在一个包中,将不同配置的所有对象放在另一个包中。但似乎这个计划最终可能会有很多不同的包,而不是包管理问题。这个问题还有其他好的解决方案吗?

我在公司通过制作一个可重用的存储库实现了这一点

基本上,我创建了一个带有接口的存储库抽象,它对传入的对象或对象集执行基本的CRUD操作。然后我使用各种持久性机制实现了它。该库可以将任何对象持久化为XML、JSON、二进制或SQL。所有这些存储库都使用相同的接口,因此所有需要与存储库交互的代码都使用这些接口,而不是具体的实现。每个实现都存在于它自己的库中,抽象也是如此,所以您只需要分发抽象库和程序所需的任何实现

在对象模型中没有什么可实现的,因为它使用反射处理通用对象(库是用C#for.Net编写的)

我还将存储库开放给扩展,在一些应用程序中,默认的基于反射的东西被更高效的强类型存储库所取代,但仍然基于通用实现

希望这有帮助。

我同意。1个需要担心的“接口”,必要时可灵活添加其他接口。