클라이언트가 사용하지 않는 인터페이스에 강제로 의존해서는 안 됩니다.
인터페이스 분리 원칙은 클라이언트가 사용하지 않는 인터페이스를 강제로 구현해서는 안 된다고 명시하고 있습니다.
하나의 팻 인터페이스 대신 여러 개의 작은 인터페이스가 메서드 그룹을 기반으로 선호되며, 각 인터페이스는 하나의 하위 모듈을 제공합니다.
인터페이스 분리 전
예시
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; } }