목차 어떤 상황에서 쓰일까? 게임 캐릭터의 속성을 생각해보자 스킨도 있고, 캐릭터 고유 스킬도 있고, 공통적인 캐릭터 스킬도 있고... 이 기능과 구현들을 모두 인터페이스나 추상 클래스를 확장해서 만들 수 있을까? 아마 implments 뒤에 붙는 인터페이스들이 20개가 넘어갈수도있다 ㅎㅎ 클라이언트가 바라보는건 '캐릭터'(추상화)이고 '캐릭터'의 구체적인 스킨과 스킬(구현체들)을 연결해서 사용하자! 다른 예시로, JDBC드라이버를 사용할 때 DriverManager.getConnection, Statement.execute(SQL), connection.prepareStatement(SQL).. 등이 모두 추상화된 기능이고 Class.forName("DriverName")에서 구체적인 구현체들을 가져오..