어떤 디자인 패턴을 더 조사할지 결정하기 위해 코파일럿의 도움을 받았다.
일단 디자인 패턴이 뭔지 아냐고 물어봤더니 잘 알고 있었다. 이제 출처와 함께 가장 자주 쓰이는 디자인 패턴 5가지를 알려달라고 했다. 벨로그를 찾아서 싱글톤, 팩토리 메서드, 템플릿 메서드, 옵저버, 전략 패턴이라는 답변을 줬다. 이제 템플릿 메서드 패턴과 옵저버 패턴에 대해 더 자세하게 알려달라고 했다.
옵저버는 아직 필요가 없을 것 같고 템플릿 메소드 패턴은 이미 우리가 자주 사용하던 방식 같아 보여서 이걸 조사해보기로 했다. 먼저 코파일럿한테 JAVA에서 템플릿 메소드 패턴에 대해 더 설명해달라고 했다.
템플릿 메소드 패턴
공통된 알고리즘의 흐름은 추상 클래스에서 정의하고 구체적인 동작은 하위 클래스에서 추상 메서드를 오버라이드하여 정의하는 패턴이다.
장점
중복 제거: 공통 흐름은 상위 클래스에 정의한다
확장성: 새로운 로직 추가 시 하위 클래스만 추가로 작성하면 된다
단점
상속에 의존: JAVA는 다중 상속을 지원하지 않기 때문에 유연성이 떨어질 수 있다
템플릿 메소드 패턴이 무엇인지는 코파일럿이 잘 설명해줬기 때문에 나는 적용사례를 찾아봤다
https://refactoring.guru/design-patterns/template-method
Template Method
Problem Imagine that you’re creating a data mining application that analyzes corporate documents. Users feed the app documents in various formats (PDF, DOC, CSV), and it tries to extract meaningful data from these docs in a uniform format. The first vers
refactoring.guru
위 링크에 설명이 굉장히 잘 되어있다. 가장 인상적이었던 부분은 패턴 간의 관계이다. 수업 시간에 배웠던 팩토리 패턴이 템플릿 메소드 패턴과 비슷하다고 생각했는데 실제로 팩토리 패턴이 템플릿 메소드 패턴의 하위 패턴이라는 게 신기했다.

추상 클래스를 처음 배울 때 저게 도대체 왜 필요한지 궁금했는데 이 패턴을 조사하고 계획의 중요성을 느끼면서 필요성을 알게 된 것 같다.
'JAVA' 카테고리의 다른 글
| [JAVA] GUI & Thread - 알낳기 (0) | 2025.10.31 |
|---|---|
| [JAVA] 중간고사 대비 (0) | 2025.10.19 |
| [JAVA] 디자인 패턴 - 전략 (짱구 예제) (0) | 2025.10.15 |
| [JAVA] 커피메이커 Ver.1 (3) | 2025.10.01 |
| [JAVA] Thread (0) | 2025.09.24 |