我的应用程序依赖于用于以xml格式存储数据的dll(名为datalib)。
我的应用与该dll之间存在紧张的关系。
我的应用程序遍布整个代码,以这种方式使用该dll检索数据:
var data = datalib.Parameters.HostAddress;
我希望我的应用能够替换数据源(例如SQL Server数据库)。
不幸的是,我的应用程序在其业务逻辑中将强类型对象从datalib传递到依赖于datalib的其他模块。
在我的情况下,有哪些方法可以实现更换数据源的能力?我是否需要创建自己的域层,并能够将其实体映射到datalib的实体?
答案 0 :(得分:2)
建议从以下链接和其他地方阅读这些概念:
基本上,您希望在外部数据访问库(datalib.dll
)周围实现松散耦合。这可以通过多种方式实现 - 从简单的DataAccess类到更具可扩展性的Repository类型工厂类。
您必须根据每种方法的成本与收益进行选择。 希望这会有所帮助。
答案 1 :(得分:0)
根据我的理解 数据源需要配置dyanamincally,它应该由datalib
使用编写一个独立程序,读取配置文件以获取数据源。
测试该程序以查看它可以访问不同的数据源。 该方法可以返回一个DataSource(用Java。对语言不太了解)
修改datalib以更改代码以访问您在步骤2中编写的程序。
通过这种方式,我们不会破坏你的应用程序中的任何合同datalib和invokation点,你可以实现一些解耦。