C'è una parte del nostro codice base scritta nel seguente stile:
// IScheduledTask.cs
public interface IScheduledTask
{
string TaskName { get; set; }
int TaskPriority { get; set; }
List<IScheduledTask> Subtasks { get; set; }
// ... several more properties in this vein
}
// ScheduledTaskImpl.cs
public class ScheduledTaskImpl : IScheduledTask
{
public string TaskName { get; set; }
public int TaskPriority { get; set; }
public List<IScheduledTask> Subtasks { get; set; }
// ... several more properties in this vein,
// perhaps a constructor or two for convenience.
}
Cioè, ci sono un gran numero di interfacce che specificano solo un insieme di proprietà senza alcun comportamento ciascuna con una sola implementazione corrispondente che le implementa con proprietà automatiche. Il codice è scritto da qualcuno abbastanza anziano (molto più di me) ed è separato da questo uso di codice procedurale ragionevole per le interfacce. Mi chiedevo se qualcun altro avesse incontrato / usato questo stile e se avesse qualche vantaggio rispetto all'utilizzo di DTO in calcestruzzo ovunque senza le interfacce.