0

我有一个依赖于 dll(名为 datalib)的应用程序,该 dll 旨在以 xml 格式存储数据。

我的应用程序和那个 dll 之间有一对紧密的关系。

在整个代码中,我的应用程序以这种方式使用该 dll 检索数据:

var data = datalib.Parameters.HostAddress;

我希望我的应用程序能够替换数据源(例如 SQL Server 数据库)。

不幸的是,我的应用程序在其业务逻辑中将强类型对象从 datalib 传送到紧密依赖 datalib 的其他模块。

在我的情况下,有哪些可能的方式来实现数据源替换的能力?我是否需要创建自己的域层,并能够将其实体映射到 datalib 的实体?

4

2 回答 2

2

建议从以下链接和其他地方阅读这些概念:

  1. 存储库模式
  2. 数据映射器

本质上,您希望围绕外部数据访问库 ( ) 实现松散耦合datalib.dll。这可以通过多种方式实现——从简单的 DataAccess 类到更可扩展的 Repository 类型工厂类。

You would have to make that choice, based on the cost vs. benefits in each approach. Hope this helps.

于 2012-12-14T09:49:34.387 回答
0

根据我的理解数据源需要动态配置,它应该由datalib使用

  1. 编写一个独立的程序,读取配置文件以获取数据源。

  2. 测试该程序以查看它可以访问不同的数据源。该方法可以返回一个 DataSource (在 Java 中。对语言不太了解)

  3. 修改 datalib 以更改代码以访问您在步骤 2 中编写的程序。

通过这种方式,我们不会破坏任何合同数据库和应用程序中的调用点,并且您可以实现一些解耦。

于 2012-12-14T07:21:14.493 回答