객체지향의 Interface 분리의 좋은 예제?

hyde1004의 이미지

안녕하세요.

OOP의 Interface의 분리를 강의나 책을 통해 배웠습니다만,
문법적으로는 이해하고 있으나,
좋은 점이 가슴에 완전히 와 닿지는 않네요.

Interface 분리 전
 Client --->   Server
 
Interface 분리 후
 Client ---> << Interface >> ---> Server
                   ^                ^
                   |                | 
                   |                | 
                Adapter ------------|

OOP의 Interface 분리의 좋은 예제(코드)가 있는 웹페이지나 책을 좀 알려주시겠습니까?
(요즘 자바를 공부하고 있는지라, 가능하면 Java면 더 좋겠습니다.)

jeongheumjo의 이미지

헤드퍼스트 디자인패턴요(Java 예제로 만들어졌지만 책 홈페이지에 보면 C++ 예제도 있어서 Java 와 C++ 둘 모두에 좋은 책입니다.)