【问题标题】:Is there a convention where to save common definitions是否有保存通用定义的约定
【发布时间】: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


【解决方案1】:

我为解决方案中的每个项目创建了一个实用程序类。它包含我常用的所有方法,例如 resetControls(),它只是遍历表单并设置默认值。我发现通过utilities.method()调用它们是一种组织它们的好方法;

我拥有的另一个非常常用的方法是utilities.Sanitize(string a),我会在靠近我的数据库之前调用任何需要清理的东西。

【讨论】:

  • 在更大的范围内,我花费大部分时间的应用程序有一个 Utilities 项目,其中包含许多类。
猜你喜欢
  • 1970-01-01
  • 2023-02-08
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 2015-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多