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