머릿말

개인적으로 Design Pattern 은 개발에 있어서 필요충분조건이라고 생각합니다. 개발을 위해서 필요조건도 아니고, 충분 조건도 아닙니다. "패턴 == 개발" 입니다. 물론 여기서 말하는 '패턴'이란 Observer Pattern, Strategy Pattern 등을 칭하는 것만은 아닙니다. 어떤 문제(상황)를 해결하기 위한 방법을 의미합니다. 어떻게 보면 "설계 알고리즘" 이라고 할 수 있겠습니다. 유명한 패턴들은 '자주 접하게 되는 아키텍처'이기 때문이지 다른 이유는 없습니다. 그만큼 개발을 하다보면 빈번하게 맞닥드리는 것이므로 알아두면 편할 것입니다. 물론 자신만의 '설계 알고리즘'을 만들어서 사용해도 됩니다.
단지 경험상 저만의 설계방법을 찾아 구현해 보았지만, 대부분 정형화된 패턴 중 하나였습니다.
제가 가장 이상적인 패턴 학습은 다음과 같습니다.
"내가 구현하는게 곧 패턴이더라."

패턴책을 보고 공부하는 것은, 문제를 스스로 풀어보기도 전에 답안지부터 보는것과 다를게 없습니다.
문제를 풀어보고, 어떤 설계를 하는것이 - 패턴을 사용하는 것이 - 아름다운 것인지 고민해 보시기 바랍니다.   



 
프로그램.



문제.
 - check 된 검색 조건(나이/성별/혈액형)에 맞는 사람을 출력하라.

심화.
 - 구현한 방식이, 요구사항이 변경되어 조건이 몇가지 더 늘어날 경우에 얼마나 유연하게 대응할 수 있는가? 


핵심 코드.
[핵심부분 코드]
 

코드 다운로드.
Quiz1.zip