Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- C++
- OS
- Spring
- codeup
- 스프링
- 코드업
- 일상
- Redux
- 공부
- Java
- 협업
- 토이프로젝트
- 정렬
- CPU 스케줄링
- error
- 프로그래머스
- react-redux
- 백준
- 기초100제
- 자료구조
- 알고리즘
- Operating System
- 분할메모리할당
- js to ts
- react
- web
- 타입스크립트
- 리덕스장바구니
- memory
- 파이썬
Archives
- Today
- Total
감자튀김 공장🍟
[디자인 패턴] day 9 본문
반응형
<< 스프링 입문을 위한 자바 객체 지향의 원리와 이해 >> 를 읽고 정리합니다.
1. 데코레이터 패턴(Decorator Pattern)
- 도장/도배업자, 장식자
- 원본에 장식을 더하는 패턴
- 프록시 패턴과 구현 방법 동일
- 프록시 패턴은 클라이언트가 최종적으로 돌려 받는 반환값 조작x 그대로 전달
- 데코레이터 패턴은 클라이언트가 받는 반환값에 장식을 덧입힘
- "메서드 호출의 반환값에 변화를 주기 위해 중간에 장식자를 두는 패턴"
- OCP, DIP 적용
2. 싱글턴 패턴(Singleton Pattern)
- 인스턴스를 하나만 만들어 사용
- 필요 요소
- new를 실행할 서 없도록 생성자에 private 접근 제어자를 지정
- 유일한 단일 객체를 반환할 수 있는 정적 메서드 필요
- 유일한 단일 객체를 참조할 정적 참조 변수 필요
- 특징
- private 생성자를 갖는다.
- 단일 객체 참조 변수를 정적 속성으로 갖는다.
- 단일 객체 참조 변수가 참조하는 단일 객체를 반환하는 getInstance() 정적 메서드를 갖는다.
- 단일 객체는 쓰기 가능한 속성을 갖지 않는 것이 정석이다.
3. 템플릿 메서드 패턴(Template Method Pattern)
- 상위 클래스에 공통 로직을 수행하는 템플릿 메서드와 하위 클래스에 오버라이딩을 강제하는 추상 메서드 또는 선택적으로 오버라이딩할 수 있는 훅(Hook) 메서드를 두는 패턴을 템플릿 메서드 패턴이라 한다.
4. 팩토리 메서드 패턴(Factory Method Pattern)
- 공장을 의미한다.
- 객체를 생성 반환하는 메서드를 의미 + Pattern (하위 클래스에서 팩터리 메서드를 오버라이딩해서 객체를 반환)
- "오버라이드된 메서드가 객체를 반환하는 패턴"
5. 전략 패턴(Strategy Pattern)
- 구성 요소
- 전략 메서드를 가진 전략 객체
- 전략 객체를 사용하는 컨텍스트(전략 객체의 사용자/소비자)
- 전략 객체를 생성해 컨텍스트에 주입하는 클라이언트(제3자, 전략 객체의 공급자)
- 템플릿 메서드와 유사
- 템플릿 메서드 패턴(상속)
- 전략 패턴(객체 주입)
6. 템플릿 콜백 패턴(Template Callback Pattern)
- 전략 패턴의 변형, 스프링 DI에서 사용
- 전략을 익명 내부 클래스로 정의해서 사용
반응형
'JAVA' 카테고리의 다른 글
[디자인 패턴] day 8 (0) | 2023.08.08 |
---|---|
[객체 지향 설계] day 7 (0) | 2023.08.07 |
[JAVA 공부] day 6 (0) | 2023.08.06 |
[JAVA 공부] day 5 (0) | 2023.08.05 |
[JAVA 공부] day 4 (0) | 2023.08.04 |
Comments