初始化扩展类 - 设计问题

时间:2011-09-17 21:54:00

标签: c# design-patterns architecture

我在C#应用程序中遇到了设计问题。我有一个DAL,它为来自不同数据库的几个不同客户提供数据。到目前为止,这些数据库具有相同的表和字段名称,但现在我有一个具有不同字段名称的数据库,因为客户希望字段名称是语言环境而不是英语。

我如何解决这个问题?

我目前的应用程序架构基于工厂。所以我有这个:

BusinessFactory初始化DAL,所以我的第一个想法是扩展DAL,然后覆盖需要更改数据库字段名称的函数,并在扩展类中创建一个新函数。但是什么时候我应该初始化这个扩展类?

我无法从我的BusinessFactory执行此操作,因为DAL取决于接口。

如果我把扩展DAL作为这个问题的解决方案我完全错了,请指出另一个方向。

2 个答案:

答案 0 :(得分:0)

我认为你必须有一个客户 - >根据您确定要连接到哪个数据库的db映射。

因此,您可以引入预处理器层来确定需要从数据库获取的列名称。所以基本上你会保留一个你可以使用的每个客户端配置(和一个默认配置)。

答案 1 :(得分:0)

简单的解决方案是使用客户希望的语言创建包含列名的视图。这样您就不必更改应用程序了。