c# - 将简单数据类定义为抽象、接口(interface)还是只是类?

标签 c# class

对于 OOP 来说还是个新手..

我将构建一些小型应用程序来支持我们的主要业务。

这些应用程序:

-需要一些通用数据类

-以上类在属性方面 future 可能会发生变化(ERP版本升级时会添加属性)。

例如我有一个类:

public class Lot
    {
        public string SSCC { get; set; }
        public InventoryItem Item { get; set; }
        public string DescriptionLocalLot { get; set; }
        public string DescriptionEnglishLot { get; set; }
        public DateTime ProductionDate { get; set; }
        public string Shift { get; set; }
        public string WorkOrder { get; set; }
        public string ProductionLine { get; set; }
        public string BarcodeEAN14 { get; set; }
        public decimal Boxes { get; set; }
        public decimal Units { get; set; }
        public decimal Pieces { get; set; }
        public DateTime LastUpdated { get; set; }
        public string LastUser { get; set; }
        public Warehouse LastWarehouse { get; set; }
        public string ProductionLot { get; set; }
        public string PalletSequence { get; set; }
    }

几乎所有应用程序(Windows 窗体或 ASP 页面)都会使用上面的类。我已将此定义放在一个名为 CommonClasses 的单独文件中。

我应该将这些类定义为抽象类还是接口(interface)更好?在大多数情况下,这些类不会包含方法。

最佳答案

类应该描述对象的所有属性以及可以对其进行操作的方法。并非所有内容都会立即使用;但提供它们是为了理解所有行为并跟踪对象的状态。

代码中描述的类似乎是具体类的候选者。它提供了一组存储在内存中并与一个对象相关的属性。如果您稍后需要其他功能,可以扩展该类来提供此功能。

但是,如果该类的每个实例都需要不同的实现;那么你应该考虑抽象类,或者接口(interface)

关于c# - 将简单数据类定义为抽象、接口(interface)还是只是类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13341588/

相关文章:

c# - 在 ITypeConverter 中使用 Automapper

c# - OVER 子句中的 SQL ORDER BY 与 CLR 聚合不兼容?

python - 我无法让我的类(class)在 pygame 中工作

c# - 在 C# 中,有没有办法将同一类中的代码分离到不同的文件中?

java - 当我知道Java中的类名称为字符串时,如何获取子类实例?

c# - 在 try block 而不是 catch block 中抛出异常?

c# - Xamarin C# xaml混淆数据绑定(bind)冲突

c# - 语言名称 'en-US' 无效。 (CS2038)

php - 无法重新声明类 - 检查类是否已存在

javascript - 返回函数的 JS 类