검색결과 리스트
design pattern에 해당되는 글 1건
글
[Head First Design Patterns] Strategy Pattern
공부
2013. 4. 22. 19:35
Head First Design Patterns 1장 디자인 패턴 소개.
스트래티지 패턴(strategy pattern)
: 객체의 Action 의 내용을 캡슐화 하여 교환해서 사용할 수 있도록 만든다.
책에서 처음 설명하는 Duck 클래스는,
quack() 메소드와 fly() 메소드를 별도의 인터페이스로 분리하고
이 인터페이스를 구현하는 클래스를 만들어 사용하는 것이다.
그리고 Duck 을 상속받은 클래스는,
생성자에서 해당 클래스에 맞는 quack() 와 fly() 인터페이스를 구현한 클래스를
사용하도록 한다.
수많은 Sub class 가 몇 가지 중복된 행동에서 한 가지를 선택해야 하는 경우라면,
코드 재사용 및 유지 보수를 한꺼번에 해결 할 수 있는 좋은 패턴이다.
하지만 스트래티지 패턴의 더욱 큰 장점은
실행시간에 Action의 내용 (알고리즘, 즉 메소드의 내용)을 바꿀 수 있다는 것이다.
예를들면, 액션 게임의 케릭터가 무기가 바뀌었을 때,
스트래티지 패턴을 사용하였다면, 단순히 attack() interface 를 구현한 클래스만 교체해 주면 해결된다.
과연, 책의 1장에서 소개해 줄 만한 쉽고도 강력한 패턴이다.
예제코드 (원문: http://en.wikipedia.org/wiki/Strategy_pattern#Example)
반응형
'공부' 카테고리의 다른 글
C로 구현한 알고리즘, 리뷰랄까. (0) | 2012.07.31 |
---|---|
C 로 구현한 알고리즘 - 3부 알고리즘, 17장. 기하 알고리즘 (0) | 2012.07.30 |
C 로 구현한 알고리즘 - 3부 알고리즘, 16장. 그래프 알고리즘(2) (0) | 2012.07.26 |
C 로 구현한 알고리즘 - 3부 알고리즘, 16장. 그래프 알고리즘(1) (0) | 2012.07.25 |
C 로 구현한 알고리즘 - 3부 알고리즘, 14장. 자료 압축 / 15장. 자료 암호화 (0) | 2012.07.23 |