【发布时间】:2023-03-19 17:40:01
【问题描述】:
我正在编写一个 C# 应用程序,我想遵循 3 层编程架构。我一直在基于this article 编写我的应用程序。
我有一些问题希望有人能帮助我:
我将域对象放在哪里(例如 Person 类,我将 getter 和 setter 以及构造函数以及它的所有属性(年龄、姓名、..)放在哪里。我把这些放在BLL 文件夹还是其他地方?
我是否应该将所有从 DAL 层调用函数的 BLL 函数放在一个控制器中,或者放在所有特定业务类(例如人员、订单等)中?
-
在调用 DAL 函数之前,我需要在每个 BLL 函数中创建一个 DAL 对象,还是使用单例模式,一次只创建一个 DAL 类对象?
我的类的截图(Program.cs 是主类):
【问题讨论】:
-
与大多数事情一样,这取决于。例如,随着应用程序大小的增长,您的
Person对象将开始在每一层中看起来有很大不同。视图中可能有一个PersonViewModel来保存显示所需的数据,BL 中的Person实体,因为它需要根据业务逻辑进行操作,也许还有一个PersonDTO来表示与对持久性最有用。 -
从 BL 中的
Person实体开始,并记住它是用于业务逻辑操作的。当您了解需要为查看或持久性目的操作数据时,请创建特定于这些目的的单独对象,并以对您的应用程序有意义的方式在它们之间进行映射。