일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 머신러닝
- 웹개발
- 빅데이터
- 인공지능
- 자바스크립트
- 프로그래밍
- 소프트웨어공학
- 네트워크
- 네트워크보안
- springboot
- 컴퓨터공학
- 소프트웨어
- 알고리즘
- 자료구조
- 데이터구조
- 데이터분석
- 프로그래밍언어
- 버전관리
- 딥러닝
- 파이썬
- 사이버보안
- 보안
- 클라우드컴퓨팅
- Yes
- 데이터과학
- 컴퓨터과학
- 컴퓨터비전
- I'm Sorry
- 데이터베이스
- 디자인패턴
- Today
- Total
목록OOP (2)
스택큐힙리스트
큰 그림 먼저두 패턴 모두 코드 중복을 줄이고 역할을 쪼개기 위한 도구지만, 초점이 다르다.Factory Method는 “어떤 객체를 만들지?”에 대한 생성 책임을 서브클래스에 넘긴다. API 사용자는 “어떤 구체 클래스인지” 모르는 채로 인스턴스를 받아 쓴다.Template Method는 “만들어진 객체가 어떻게 일할까?”에 대한 행위 흐름을 부모가 고정하고, 변동 단계만 자식에게 맡긴다.둘을 조합하면 “공통 알고리즘 뼈대”는 Template Method로 잡고, 그 과정에서 필요한 “구체 객체”는 Factory Method로 생성하도록 설계할 수 있다. 예컨대 스프링 DispatcherServlet이 요청 흐름(Template) 안에서 View 객체를 뽑아낼 때 ViewResolver가 Factory..
패턴 한 줄 정의부모 클래스가 알고리즘의 골격(Template) 을 제공하고, 세부 단계는 추상 메서드로 남겨 자식 클래스가 채우게 하는 행위 패턴. 결과적으로 공통 흐름은 재사용하고, 변하는 부분만 오버라이드해 중복을 없앤다.언제 써야 맛이 살까?동일한 작업 흐름이 여러 곳에서 쓰이지만, 부분 단계가 살짝씩 다를 때“프레임워크 vs 앱”처럼 제어권을 프레임워크에 두고, 개발자는 훅(hook)만 구현하도록 강제하고 싶을 때테스트∙리팩터링을 위해 핵심 로직을 한 곳에 모으고 싶을 때구조 감 잡기AbstractClasstemplateMethod() 안에 알고리즘 순서를 고정하고, 변동 단계는 abstract fun step() 형태로 선언.ConcreteClassstep() 구현으로 세부 동작을 정의.Hoo..