面向对象设计与数据库设计

use*_*312 5 c# oop n-tier-architecture

假设我正在为C#中的产品经销商开发一个应用程序.

分销商执行以下3种类型的交易:

(1)缩进

(2)出售

(3)股票

我正在设计我的课程如下:

public abstract class Transaction
{
}

public class Indent : Transaction
{
}

public class Sell : Transaction
{
}    

public class Stock : Transaction
{
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我想将这三种类型的信息保存在三个单独的表中,那么我应该如何设计我的DA层?

我应该建立单独的DA类吗?

(1) IndentDA
(2) SellDA
(3) StockDA
Run Code Online (Sandbox Code Playgroud)

或单个类,TransactionDA并通过使用as/is运算符检查其类型执行CRUD操作?

或者我还能做什么?有什么建议?

Jos*_*eph 5

首先,如果您在类中创建了单个类TransactionDA并检查了类型以执行CRUD操作,那么您将违反开放/封闭原则,因此我绝对不会走这条路.

至于如何建立你的DAL的建议,我建议关注一些关于人们的博客文章比我对他们对这个主题的看法更聪明.

存储库是新的Singleton

存储库已死:长期存储库

生存资料库之夜

我相信谈话仍在继续,但这应该让你开始.