Моделирование иерархии объектов диапазона дат и времени - PullRequest
0 голосов
/ 14 июля 2020

Newb ie для рефакторинга кода, у меня есть простой объект, как показано ниже с логическим свойством родительского класса (например, IsPlanned), какое из них будет лучше с точки зрения производительности?

1 Ответ

1 голос
/ 14 июля 2020

Поскольку вы, похоже, не добавляете никаких других свойств к ActTimeRange и PlannedTimeRange, может быть лучше создать такую ​​модель:

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).

Производительность не должна быть проблемой при любом подходе.

...