为日期时间范围 object 层次结构建模

Model a date time range object hierarchy

代码重构新手,我有一个简单的object如下

public class TimeRange
    {
        public Guid Id { get; set; }

        public DateTime StartTime { get; set; }

        public DateTime EndTime { get; set; }

    }

    public class ActTimeRange : TimeRange
    {

    }

    public class PlannedTimeRange : TimeRange
    {

    }

我在想,如果我应该通过减少两个 children class 来缩小这个 class 层次结构关系,而不是用一个布尔值 属性 替换它们parent class(即 IsPlanned),哪个性能更好?

因为您似乎没有向 ActTimeRangePlannedTimeRange 添加任何其他属性,所以做这种模型可能更好:

public class TimeRange
{
    public Guid Id { get; set; }
    public DateTime StartTime { get; set; }
    public DateTime EndTime { get; set; }
    public TimeRangeStatus Status { get; set; } = TimeRangeStatus.None;
}

public enum TimeRangeStatus
{
    None,
    Actual,
    Planned
}

我会避免将 bool 作为 属性 或字段,因为您最终可能会得到像 DoSomething(true, false) 这样的方法调用 - 这不是很清楚。最好有DoSomething(TimeRangeStatus.Actual, SomeOtherFlag.Red).

任何方法都不应考虑性能。