일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SW ExpertAcademy
- 베스트엘범
- 미세먼지 안녕!
- QueryDSL 기초
- 거울 설치
- 16234번
- 2020 카카오 인턴십
- 스타트 택시
- 12869번
- 17144번
- SW Expert Academy
- 빛의 경로 사이클
- 백준 알고리즘
- 14499번
- 1038번
- HTML 기초
- 프로그래머스
- 9095번
- 키패드 누르기
- 감소하는 수
- 19238번
- 보석 쇼핑
- 어른 상어
- 파이썬
- 경주로 건설
- 수식 최대화
- python
- 12865번
- 1789번
- 15686번
Archives
- Today
- Total
보물창고 블로그
전략 패턴 (Strategy Pattern) 이란? 본문
728x90
전략 패턴이란
여러 알고리즘을 하나의 추상적인 접근점을 만들어 접근 점에서 서로 교환 가능하도록 하는 패턴입니다.
추상적인 접근점이란 자바(Java)에서 인터페이스(Interface)를 지칭하는 것이고, 인터페이스를 통해 인터페이스를 상속하는 하위 클래스를 변경 가능하게 하는 것입니다. 코드로 살펴보겠습니다.
위 사진과 같이 party라는 인터페이스를 만들었습니다. 그리고 상속받는 클래스들에게 propagandize라는 함수를 만들게 하였습니다.
이후 party를 상속받는 클래스들을 만들었습니다.
party를 상속받은 클래스 내부에서 propagandize함수를 재정의하였습니다.
파티를 멤버 변수로 가질 person 클래스를 선언하였습니다.
이후 메인에서 다음과 같이 실행하였습니다.
먼저 person 객체의 party 값이 null 값이기 때문에 "나는 중립이오"가 출력되었고,
다음 줄부터는 person의 propaganda함수에 의해 person이 가지고 있는 party의 propagadize 함수가 호출되었습니다.
이로써 추상적인 접근점을 만들어 접근 점에서 서로 교환 가능하도록 하는 패턴을 확인하였습니다.
Comments