มีบางส่วนของ codebase ของเราเขียนในรูปแบบต่อไปนี้:
// 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.
}
นั่นคือมีอินเทอร์เฟซจำนวนมากที่ระบุเพียงชุดของคุณสมบัติที่ไม่มีลักษณะการทำงานแต่ละอย่างที่มีการใช้งานที่สอดคล้องกันเพียงอย่างเดียวซึ่งใช้สิ่งเหล่านี้กับคุณสมบัติอัตโนมัติ รหัสถูกเขียนโดยคนที่ค่อนข้างอาวุโส (มากไปกว่าตัวฉันเอง) และนอกเหนือจากการใช้อินเทอร์เฟซรหัสขั้นตอนที่เหมาะสม ฉันสงสัยว่ามีคนอื่นที่เคยเจอ / ใช้สไตล์นี้หรือไม่และมันมีข้อได้เปรียบมากกว่าการใช้ DTO ที่เป็นรูปธรรมทุกที่โดยไม่ต้องมีอินเตอร์เฟส