ลูกค้าไม่ควรถูกบังคับให้พึ่งพาอินเทอร์เฟซที่พวกเขาไม่ได้ใช้
หลักการแยกส่วนต่อประสานระบุว่าลูกค้าไม่ควรถูกบังคับให้ใช้อินเทอร์เฟซที่พวกเขาไม่ได้ใช้
แทนที่จะใช้อินเทอร์เฟซแบบอ้วนเดียว อินเทอร์เฟซขนาดเล็กจำนวนมากเป็นที่ต้องการตามกลุ่มของวิธีการ โดยแต่ละอินเทอร์เฟซจะให้บริการโมดูลย่อยเพียงโมดูลเดียว
ก่อนการแยกอินเทอร์เฟซ
ตัวอย่าง
public interface IProduct {
int ID { get; set; }
double Weight { get; set; }
int Stock { get; set; }
int Inseam { get; set; }
int WaistSize { get; set; }
}
public class Jeans : IProduct {
public int ID { get; set; }
public double Weight { get; set; }
public int Stock { get; set; }
public int Inseam { get; set; }
public int WaistSize { get; set; }
}
public class BaseballCap : IProduct {
public int ID { get; set; }
public double Weight { get; set; }
public int Stock { get; set; }
public int Inseam { get; set; }
public int WaistSize { get; set; }
public int HatSize { get; set; }
} หลังการแยกส่วนต่อประสาน
ตัวอย่าง
public interface IProduct {
int ID { get; set; }
double Weight { get; set; }
int Stock { get; set; }
}
public interface IPants {
int Inseam { get; set; }
int WaistSize { get; set; }
}
public interface IHat {
int HatSize { get; set; }
}
public class Jeans : IProduct, IPants {
public int ID { get; set; }
public double Weight { get; set; }
public int Stock { get; set; }
public int Inseam { get; set; }
public int WaistSize { get; set; }
}
public class BaseballCap : IProduct, IHat {
public int ID { get; set; }
public double Weight { get; set; }
public int Stock { get; set; }
public int HatSize { get; set; }
}