[Facts]
- 템플릿 메서드 패턴과 전략 패턴
- 동적 메서드 탐색
[Feelings+Finding]
- 템플릿 메서드 패턴과 전략 패턴
템플릿 메서드 패턴 (상속 활용)
• 상위 클래스에서 공통 구조(알고리즘)를 정의하고, 하위 클래스에서 세부 동작을 구현하는 패턴.
• Hook 메서드를 활용하면 알고리즘의 흐름을 제어 가능.
• 장점: 코드 중복 제거, 유지보수 용이
• 단점: 부모 클래스 변경 시 영향이 큼
전략 패턴 (합성 활용)
• 알고리즘을 독립적인 Strategy 인터페이스로 분리하고, 필요할 때 동적으로 변경하는 패턴.
• 클라이언트가 원하는 전략을 직접 선택해야 함.
• 장점: 유연성과 확장성 증가, 코드 중복 제거
• 단점: 클라이언트가 각 전략의 차이를 이해해야 함
Dealer와 Player가 더 드로우할지 말지 결정하는 방식을 어떻게 구현할지 고민하면서 학습했다.
• 템플릿 메서드 패턴: Participant 클래스를 만들고, Dealer와 Player가 shouldDrawMore()을 다르게 구현하는 방식.
• 전략 패턴: DrawingStrategy 인터페이스를 정의하고, Dealer와 Player가 각각의 전략을 가질 수 있도록 구성
2. 동적 메서드 탐색
• 메서드 탐색은 호출한 객체(self)를 기준으로 시작하여, 자식 클래스에서 부모 클래스 방향으로 진행된다.
• 그래서 자식 클래스에서 메서드를 오버라이딩하면 부모 클래스보다 우선 실행되는 것이다.
• 자식 클래스에 없다면 부모 클래스에서 그 메서드를 찾고, 제일 위의 조상에서도 그 메서드를 찾지 못한다면 예외를 던진다.
이번주는 새로운 것을 학습하기 보다는 내가 하는 것이 맞는지 생각하고, 내가 작성한 코드에 대한 근거를 생각하는데 더 많은 시간을 보낸거 같습니다.
'우테코' 카테고리의 다른 글
우테코에서의 6주차 WIL (0) | 2025.03.25 |
---|---|
우테코에서의 4주차 WIL (0) | 2025.03.09 |
우테코에서의 3주차 WIL (0) | 2025.03.06 |
우테코에서의 2주차 WIL (1) | 2025.02.23 |