-
Notifications
You must be signed in to change notification settings - Fork 2
Open
0 / 10 of 1 issue completedLabels
ch13서브클래싱과 서브타이핑서브클래싱과 서브타이핑
Description
💡 이슈
- 이번 장에서는 지속적으로 중요한 것이
클라이언트의 관점이라고 이야기합니다. - 레벨 1 블랙잭 미션에서 저는
Participant를 부모 타입으로,Dealer와Player를 자식 타입으로 사용했습니다. 클라이언트의 관점에서 이 상속은 서브클래싱일까요 서브타이핑일까요?
❓ 이유
Dealer와Player를 호출하고 사용하고 있는클라이언트의 관점에서draw라는 메서드를 실행했을 때, 클라이언트는 딜러와 플레이어 모두 동일하게 한 장의 카드를 뽑는 것을 기대할 것이라고 생각합니다. 또,isBust혹은isBlackjack과 같은 메서드를 실행했을 때에도 클라이언트는Dealer와Player모두에게 동일한 기대를 한다고 생각합니다. 이런 관점에서는 이 상속이 서브타이핑에 해당한다고 볼 수 있습니다.- 그렇지만 클라이언트에서
Participant가 아니라Dealer와Player를 구분하여 사용하고 있었기 때문에대체 가능성이 깨졌다고 볼 수 있고, 이 상속은 단순히 중복 코드를 없애기 위한 서브클래싱이었다고 생각이 듭니다. - 그래서 지금 다시 블랙잭 미션을 구현하게 된다면
상속을 사용하지 않을 것이라고 결론을 내렸습니다. - 다른 분들은 블랙잭에서 상속을 사용하셨는지 사용하지 않으셨는지, 사용하지 않으셨다면 어떻게 구현하셨는지 궁금합니다.
또 13장을 읽은 후인 지금, 다시 블랙잭 게임을 구현하게 된다면 상속을 사용하실 것인지에 대한 의견도 같이 나눠보면 좋겠습니다~!
📖 관련 페이지
- Ch 13 전체
Reactions are currently unavailable
Sub-issues
Metadata
Metadata
Assignees
Labels
ch13서브클래싱과 서브타이핑서브클래싱과 서브타이핑