설명
알고리즘 같은 하나의 메소드가 조금씩 다른 버전이 많은 경우,
이를 하나하나 다르게 한 서브클래스를 만드는 것은 낭비이다.
그럴때 이런 알고리즘만 따로 떼놓아 상속의 장점을 살려 같은 인터페이스를 사용하는 것.
이때 context 는 ConcreteStrategy 만 바꾸면 되기 때문에 재활용성이 큼.
문제는 사용자가 어떤 알고리즘이 있는지 즉 작동원리를 알고 있어야한다는 점.
예제 코드
코드 필요없을 듯.
추가 설명
Strategy 객체 풀은 Flyweight 로 구현하는게 좋음.
댓글 없음:
댓글 쓰기