【发布时间】:2019-10-07 02:33:30
【问题描述】:
我正在创建一个 C# 程序(这个问题对于任何 OOP 语言都是通用的),它包括几个逻辑部分,每个部分都用于处理程序所需的一些服务。例如,负责从数据库获取结果的数据库处理程序,负责从 Web 服务获取结果的 Web 服务处理程序等......
假设数据库有一个表,其中包含一个包含一些枚举值的列。程序可以读取这些值,当然这些值将以枚举的形式出现。所以这个枚举是专门为 db 使用而创建的,但是对于几个部分来说是可读的。
这个枚举应该在OOP程序端的什么地方定义:
1) 是否应该有一个通用定义文件,其中包含通用类、类型、枚举等的所有定义。
2) 是否应该有多个定义文件,每个部分一个?所以本例中的枚举将在 db 的定义文件中定义。
3) 完全不同的东西?
【问题讨论】:
-
不管它在哪里,
enum总是在你的代码中有一个定义,否则它不存在。如果枚举值的名称明确并提供了一些定义,那么您还可以将 XML cmets 添加到enum及其值中。我会谨慎地在多个地方定义一些东西,因为那样它们必须保持同步。我将始终倾向于在代码中定义事物,因为它是“大脑”所在的地方,您始终可以查看历史以查看已更改的内容并将某些内容改回。任何人都可以更改表格中的任何内容。 -
这将取决于项目的大小。如果我正在为快速编写三个小类,它们可能都放在一个文件中。但是在一个严肃的项目中,每个类/枚举/任何东西都有自己的文件,我将进一步使用命名空间进行组织:例如,数据库内容可能都放在数据库命名空间中。 Web 服务的东西会放在另一个名称空间中。在 VS 中,如果你创建一个名为
Database的文件夹,你在其中创建的任何类都会自动进入命名空间MyProject.Database。
标签: c# oop design-patterns architecture