Hay una parte de nuestra base de código escrita en el siguiente estilo:
// 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.
}
Es decir, hay una gran cantidad de interfaces que especifican solo un conjunto de propiedades sin comportamiento, cada una con una única implementación correspondiente que las implementa con propiedades automáticas. El código está escrito por alguien bastante mayor (mucho más que yo) y está separado de este uso de interfaces de código de procedimiento razonable. Me preguntaba si alguien más había encontrado / usado este estilo y si tiene alguna ventaja sobre el uso de DTO concretos en todas partes sin las interfaces.