![]() |
1
5
首先,如果创建单个类Transactionda并检查类内的类型以执行CRUD操作,则会违反 Open/Closed Principle 所以我绝对不会走这条路。 关于如何完成DAL构建的建议,我建议在博客上关注一些比我更聪明的人,他们对这个主题的看法。 Repository is the new Singleton Repository is Dead: Long Live Repository Night of the Living Repositories 我相信谈话还在继续,但这应该能让你开始。 |
![]() |
2
3
我会使用诸如nhibernate这样的ORM,并使用它的多表继承功能,然后就不必担心它了。 |
![]() |
3
3
我将在这里使用实体子类型。为事务创建一个表(正如前面的海报所说,也许用另一个术语更好),并存储其中常见的所有内容。然后为每个专门化创建一个“子类型”表。这些子类型表应该具有与主表(“强”实体)相同的主键,以及对该特定专门化唯一的字段。每个子类型以一对一的方式与强实体相关,可以选择参与子类型端,也可以要求参与强实体端。 然后,为了使查询更容易,定义一个视图,(外部)将强实体与所有实体子类型连接起来,这样您就可以轻松地“看到”所有内容。 下面是一个简单(也是常见)的示例,说明如何设置:
|
![]() |
4
2
如果您知道您的数据将进入三个单独的表中,那么我通常会有三个单独的DA类。 但是,如果您的表几乎完全相同,那么您可以将Transactionda泛型化并简化数据层。只有当您知道您将拥有大量事务并且将要将表分离为不同的文件或其他内容时,我才会这样做,否则我可能只会简化这些内容并将它们组合在一起。 除非所有单独的事务类型都是 极其 类似的。 |
![]() |
5
2
您可以使用依赖项注入,为每个类创建一个DA类,并让它们都用您的CRUD操作实现相同的接口ITransactionDA。
|
![]() |
6
0
我会那样做的
|
![]() |
7
-6
|
|
simply lemon · python上链表的添加方法 1 年前 |
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 1 年前 |
![]() |
P N Singh · 在CPP Oops中调用对象而不创建它 1 年前 |
![]() |
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
![]() |
Andy Votava · 从父类定义调用学生方法 1 年前 |