본문 바로가기

Design Pattern

(11)
Observer Pattern ① 개요 지난번 Strategy Pattern에서는 상속과 구현을 이용한 클래스 설계 후에 그것을 리팩토링 하면서 해나가면서 배우는 디자인 패턴이었다면, 이번에는 다른 방법으로 접근을 해보겠습니다. 먼저 Observer Pattern을 간단하게 그림과 함께 알아보도록 하겠습니다. 유후군 잇힝리라는 마을이 있다고 가정을 합시다. 잇힝리에 사는 현씨네 큰 아들이 장가를 간다고 이장님이 이 동네사는 현아네, 윤주네, 범석이네 식구들에게 방송으로 이 경사스러운 소식을 알렸습니다. 그렇지만 잇힝리에 살지 않는 한산이네까지는 방송이 되지 않았습니다. 옵저버 패턴은 이와 같이 동네 이장님이 동네 사람들에게 어떤 소식을 알리는 것과 같은 것을 비유해서 알고 있으면 기억하기가 쉽습니다. 보통 유식한 말로 이렇게 이야기 합니다. ..
Strategy Pattern ③ 정리 책에서는 세가지의 디자인 원칙을 내세우면서 궁극적으로 Strategy Pattern으로 가기 위한 로드맵을 제공합니다. ① 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리시킨다. ② 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다. ③ 상속보다는 구성을 활용한다. ① 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리시킨다. attack(), move(), stop().. 등의 바뀌는 부분을 분리시켜서 따로 만들어 준것 기억하시죠? 그것들을 행동 별로 나누어서 또 세분화 시켜준 것을 의미합니다. ② 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다. 이전에 있던 Attackable과 같은 인터페이스는 Terran을 상속받는 구체적인 유닛 클래스가 구체적으로 구..
Programming by Intending 테스트위주의 개발 : 의도된 프로그래밍 2005년 2월 4일, Dave Astels에 의해 쓰여짐, 챕터의 예제는 courtesy of Prentice Hall PTR가 제공했다. 부분적인 코드에 대해서 작업을 하고 또 그것에 대해 이해하는 것이 어렵다는것을 발견한 적이 있습니까? 아마 로직이 뒤죽박죽 일겁니다, 식별자들은 의미가 없거나 아니면 더 심각하게는 혼동될 수 있을 겁니다. 문서가 있다구요? 해석이 가능했습니까? 이해가 가던가요? 코드까지 설명했나요? 정말인가요? 어떻게 알수 있습니까? 이 챕터에서는 XP에서 중요한 요소인 의도된 프로그래밍에 대해서 다룰것입니다, 그것은 당신이 코딩을 할때에 당신의 의도를 명확하게 만드는 것을 의미합니다. O, be some other name! —Romeo a..