역할 분리의 예
Kevin 이라는 클래스가 있다면 다음의 역할들이있다.
- 남편의 역할
- 아빠의 역할
- 아들의 역할
- 사위의 역할
- 친구의 역할
- 직원의 역할 ...
위의 경우에서 MusicPlayer 의 play method의 경우 노래가사를 문자열로 리턴해야 한다.
그런데 MusicPlayer를 주입받는 RapPlayer에서는 -1로 리턴하고있기때문에 LSP에 위배된다고 할 수 있다.
- 새의 행동(일반적인 하나의 인터페이스
- 날 수 있는 행동(구체적 인터페이스1)
- 울 수 있는 행동(구체적 인터페이스2)