我正在启动一个项目,并且正在为我们的数据访问层的架构而苦苦挣扎。基本上,它将需要与具有不同数据库设计的多个后端交互。
我想要一个通用 DAL,然后在任何后端执行一个通用功能。后端具有用于插入、更新等的唯一代码。因此,在一个后端添加员工将在另一个后端具有不同的代码。
我尝试了存储库模式,但这并不适用于这种情况。我最终只得到了一个工厂模式方法,但我最终将为每个对象创建一个工厂。我可能只能创建 1 个工厂,但后端对象将有数百个函数,如“SaveEmployee”、“SavePlan”等。
现在我有以下内容:
DAL
--> DAL.Backend1
--> Employee.Save(employee)
--> Plan.Save(plan)
--> DAL.Backend2
--> Employee.Save(employee)
--> Plan.Save(plan)
在 DAL 项目中,我为每个对象、员工、计划都有一个工厂模式,以决定返回和执行哪个 DAL 的对象。
我很确定这不是最好的架构,所以我想知道是否有更好的模式可以用来解决我的问题。