제가 처음 전략패턴을 적용한 코드 를 봤을 때 OO 원칙을 위반했다고 생각했었죠. OO는 데이터와 행위를 한 곳에 모으는 것 아닌가? 로직만 따로 분리하다니... OO를 설명할 때 빌려오는 비유 때문에 생기는 오해가 많더라고요. 물론 당시엔 설계 패턴을 몰랐을 때... 09.07.28 13:55
프로그래밍 객체지향 OOP 설계 디자인 패턴 전략 패턴 design patterns gof strategy pattern
6 개의 댓글이 있습니다.
전략 패턴, 설계 패턴 하니 어색한 느낌 >.< 그래서 첫 번역서가 중요한 것 같아요. 예전에 니가 왜 디자인을 공부해란 소리도 들었었고;;
09.07.28 14:00왠지 이거 빈칸 채우기 같다
09.07.28 14:55템플릿에 기반한 STL 도.. 컨테이너와 알고리듬을 분리해서 어떤 컨테이너에도 알고리듬을 적용할 수 있도록.. 하고 있는데 요것도 전략 패턴 비슷한건가요.. 단 템플릿은 상속이 필요 없이 구현 가능 ~
09.07.28 15:37템플릿하고는 좀 다를 것 같습니다. 그건 언어차원에서 지원되는 것이니 설계로 보기 힘들고 무엇보다 컴파일 단계에서 결정되는 것이니까요. 전략패턴은 런타임에 알고리즘 교체가 가능하다는 특징이… ((제가 모르고 넘겨 짚는 것일 수도 있겠네요. 사실 C++ 템플릿을 잘 몰라서…))
09.07.28 17:02저도 잘못 적은거 같아요 ㅎㅎ. 전략패턴이 알고리듬을 여러개 가진 놈을 다형성으로 생성하는 패턴같은데 저는 반대로 얘기했네요 —;
09.07.28 17:14전략패턴은 확장을 위한 특정 로직을 분리하는 것일 뿐입니다. 호출하는 쪽(컨텍스트)에 로직이 남아있지 않다면 그건 인터페이스 또는 프록시일 뿐이죠.
09.07.29 08:56