본문 바로가기

Strategy Pattern2

Strategy Pattern 과제 과제 : strategy pattern을 이용해서 파일 속성을 다양한 형태로 비교해서 정렬해서 출력할 수 있는 프로그램을 작성할 것 - 두 가지 방식으로 패턴을 작성하였음 (1) Sorter Interface에 정렬 알고리즘들을 구현한다. 본인이 푼 방식 코드 : https://github.com/kook1932/Computer-Science/tree/master/Design%20Pattern/Strategy%20Pattern01 (2) Comparable Interface에 정렬 기준에 따른 비교 알고리즘 구현 코드 : https://github.com/kook1932/Computer-Science/tree/master/Design%20Pattern/Strategy%20Pattern02 어떤 알고리즘을.. 2019. 12. 26.
Strategy Pattern 1. 정의 1) 여러 알고리즘 전략이 존재하고, 상황에 따라 적합한 정책을 적용시킨다. 2. 문제 1) 클라이언트에 모든 알고리즘을 포함시키는 것은 클라이언트 코드의 양이 늘어나고 복잡해짐 -> 유지 보수 어려움 2) 알고리즘의 다른 버전이 존재해서, 중복으로 존재하거나 if문을 이용해서 선택해야함. OCP(Open-Closed Principle) 위반 3. 해결방안 1) 중복을 공통화시키고, 실행 시점에 맞는 알고리즘을 호출하도록 한다(상속 또는 인터페이스 활용) 2) 새로운 알고리즘이 필요하면 알고리즘 클래스를 추가하여 전략적으로 상황에 맞게 알고리즘을 사용할 수 있음. 알고리즘의 확장이 용이함. 4. 사용 예제 1) 조리법이 다른 경우 2) 파일의 압축 방법이 다른 경우 등. 2019. 12. 26.