Es gibt einen Teil unserer Codebasis, der im folgenden Stil geschrieben ist:
// 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.
}
Das heißt, es gibt eine große Anzahl von Schnittstellen, die nur eine Reihe von Eigenschaften ohne Verhalten angeben, wobei jeweils eine einzige entsprechende Implementierung diese mit automatischen Eigenschaften implementiert. Der Code wurde von jemandem geschrieben, der ziemlich hochrangig ist (viel mehr als ich) und abgesehen von dieser Verwendung von Schnittstellen vernünftigen Verfahrenscode. Ich habe mich gefragt, ob jemand auf diesen Stil gestoßen ist / ihn verwendet hat und ob er Vorteile gegenüber der Verwendung konkreter DTOs überall ohne Schnittstellen hat.