디자인패턴13 [디자인패턴] 스트래티지 패턴 (Strategy Pattern) 목적 같은 종류의 작업을 하는 알고리즘을 정의, 각 알고리즘을 캡슐화 알고리즘들을 서로 바꿔 사용할 수 있도록 함 스트래티지 패턴은 알고리즘을 사용하는 클라이언트로 부터 독립적으로 알고리즘을 바꿔서 적용시킬 수 있도록 함 요약 문제: 알고리즘의 다른 버전이 존재해서, 중복으로 존재하거나 if문을 이용해서 선택해야 함 -> OCP 위반 해결: 중복을 공통화시키고, 실행 시점에 맞는 알고리즘을 호출하도록 함 (상속 또는 인터페이스 활용) 결과: 수정할 경우 strategy를 추가하고, 나머지는 변경하지 않아도 됨. 구성 Context 클래스 캡슐화된 알고리즘을 멤버 변수로 포함 캡슐화된 알고리즘을 교환할 수 있음 Strategy 클래스 (인터페이스) 컴파일 시점에서 사용하는 캡슐화된 알고리즘을 나타냄 실제 .. 2021. 10. 13. 이전 1 2 3 4 다음