"전략패턴"의 두 판 사이의 차이
greenwood26 (토론 | 기여) (→특징) |
greenwood26 (토론 | 기여) (→특징) |
||
10번째 줄: | 10번째 줄: | ||
=== 장점 === | === 장점 === | ||
새로운 알고리즘이 개발되더라도 기존에 작성했던 클래스의 코드를 수정하지 않고도 이를 쉽게 추가 적용할 수 있게 한다. SOLID원칙에서 개방-폐쇄원칙(OCP)를 만족한다.<ref name = 'strategy04'>favxoe, <[https://fabxoe.tistory.com/62 전략패턴]>, <<개인 블로그>>, 2019-11-06</ref> | 새로운 알고리즘이 개발되더라도 기존에 작성했던 클래스의 코드를 수정하지 않고도 이를 쉽게 추가 적용할 수 있게 한다. SOLID원칙에서 개방-폐쇄원칙(OCP)를 만족한다.<ref name = 'strategy04'>favxoe, <[https://fabxoe.tistory.com/62 전략패턴]>, <<개인 블로그>>, 2019-11-06</ref> | ||
− | |||
− | |||
== 구조 == | == 구조 == |
2020년 8월 19일 (수) 14:43 판
전략 패턴(Strategy Pattern) 이란 전략을 쉽게 바꿀 수 있도록 해주는 디자인 패턴이다. 여기에서 전략이란 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비즈니스 규칙, 문제를 해결하는 알고리즘 등으로 이해할 수 있다.[1]
개요
디자인패턴에서 전략패턴(strategy pattern)을 따르는 클래스는 유연하고 재사용 가능한 객체 지향 소프트웨어를 설계하기 위해 반복되는 디자인 문제를 해결하는 방법, 즉 객체는 구현, 변경, 테스트, 재사용이 쉬워야 한다는것을 기술하는 23가지 GoF 디자인 패턴중 하나이다.[2] 같은 문제를 해결하는 여러 알고리즘이 클래스별로 캡슐화되어 있고 이들이 필요할 때 교체할 수 있도록 함으로써 동일한 문제를 다른 알고리즘으로 해결할 수 있게하는 패턴이다.[1]
특징
목적
하나의 결과를 만드는 목적(메소드)는 동일하나, 그 목적을 달성할 수 있는 방법(전략, 알고리즘)이 여러가지 존재할 경우에 사용하는 패턴이다. Context의 변경을 최소화하고, 인터페이스를 통해 다양한 타입을 만들어 코드를 변경할 수 있다.[3]
장점
새로운 알고리즘이 개발되더라도 기존에 작성했던 클래스의 코드를 수정하지 않고도 이를 쉽게 추가 적용할 수 있게 한다. SOLID원칙에서 개방-폐쇄원칙(OCP)를 만족한다.[4]
구조
각주
- ↑ 1.0 1.1 정인상, 채흥석, <자바 객체지향 디자인 패턴: UML과 GoF 디자인 패턴 핵심 10가지로 배우는>, <<한빛 미디어>>, 2014-04-28
- ↑ 전략 패턴 위키백과 - https://ko.wikipedia.org/wiki/%EC%A0%84%EB%9E%B5_%ED%8C%A8%ED%84%B4
- ↑ 문메이, <전략패턴(Strategy Pattern)>, <<개인 블로그>>, 2018-04-03
- ↑ favxoe, <전략패턴>, <<개인 블로그>>, 2019-11-06
참고자료
- 정인상, 채흥석, <자바 객체지향 디자인 패턴: UML과 GoF 디자인 패턴 핵심 10가지로 배우는>, <<한빛 미디어>>, 2014-04-28
- 전략 패턴 위키백과 - https://ko.wikipedia.org/wiki/%EC%A0%84%EB%9E%B5_%ED%8C%A8%ED%84%B4
- 문메이, <전략패턴(Strategy Pattern)>, <<개인 블로그>>, 2018-04-03
- favxoe, <전략패턴>, <<개인 블로그>>, 2019-11-06