범용 인터페이스 하나보다 특정 클라이언트를 위한 인터페이스 여러 개가 더 낫다.
다르게 말하면, 클래스가 자신이 사용하지 않는 메서드는 구현하지 않아야 한다는 뜻이다.
자동차 인터페이스가 있고 여기 안에는 운전에 관련된 기능, 정비에 관련된 기능이 있다.
이 인터페이스를 사용하게 되는 클라이언트는 운전사와 정비사가 될 것이다.
운전사는 정비에 관련된 기능이 필요 없음에도 구현을 해야 하고 정비사도 운전에 관련된 기능이 필요 없음에도 구현을 해야 하는 상황이 벌어진다.
또한, 정비 관련 기능을 변경 및 수정하게 되면 정비사 뿐만 아니라 운전자도 영향을 받게 된다.
이와 같이, 인터페이스가 너무 크면 분리하는 것이 유지보수 측면에서 더 낫다.
인터페이스를 구체적이고 작은 단위로 분리시키게 되면