Programming/Design Pattern
Strategy Pattern
빠긔
2019. 12. 26. 11:59
반응형
1. 정의
1) 여러 알고리즘 전략이 존재하고, 상황에 따라 적합한 정책을 적용시킨다.
2. 문제
1) 클라이언트에 모든 알고리즘을 포함시키는 것은 클라이언트 코드의 양이 늘어나고 복잡해짐 -> 유지 보수 어려움
2) 알고리즘의 다른 버전이 존재해서, 중복으로 존재하거나 if문을 이용해서 선택해야함.
OCP(Open-Closed Principle) 위반
3. 해결방안
1) 중복을 공통화시키고, 실행 시점에 맞는 알고리즘을 호출하도록 한다(상속 또는 인터페이스 활용)
2) 새로운 알고리즘이 필요하면 알고리즘 클래스를 추가하여 전략적으로 상황에 맞게 알고리즘을
사용할 수 있음. 알고리즘의 확장이 용이함.
4. 사용 예제
1) 조리법이 다른 경우
2) 파일의 압축 방법이 다른 경우 등.
반응형