将简单数据类定义为抽象,接口或仅仅是类?

时间:2012-11-12 09:58:23

标签: c# class

OOP的新鲜事。

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

这些应用:

- 需要一些常见的数据类

- 就属性而言,上述类可能会在未来发生变化(在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的单独文件中。

我应该将这些类更好地定义为抽象或接口吗?在大多数情况下,这些类不包括方法。

2 个答案:

答案 0 :(得分:1)

如果更改对于使用这些类的所有应用程序都是通用的,则应在您的情况下使用具体类。

答案 1 :(得分:1)

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

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

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