0. 디자인 패턴은 클래스 라이브러리가 아니다.

디자인 패턴은 클래스 라이브러리보다 더 일반적인 개념이다.

클래스 라이브러리는 부품이 되는 프로그램을 의미하지만 디자인 패턴은 부품이 어떻게 조립되어 있고, 각각의 부품이 어떻게 관련해서 큰 기능을 발휘하는지를 표현한 것이다.



1. 클래스 라이브러리 안에서 디자인 패턴이 사용되고 있다.   

Java의 표준적인 클래스 라이브러리 안에는 디자인 패턴이 많이 활용되고 있습니다.

디자인 패턴을 이해하고 있으면 클래스 라이브러리의 역할을 이해하는데 도움이 될 것입니다.



2. 프로그램을 완성품으로 보지 않는다.

디자인 패턴의 목표중 하나는 프로그램의 재사용성을 강하게 하는것이다.

즉 프로그램을 부품으로써 재이용할 수 있는가를 생각해야한다.

따라서 프로그램을 완성품이 아닌 기능을 확장해 가는 것, 변경할 수 있는 것으로 보길 바란다.



3. 다이어그램은 보는 것이 아니라 읽는 것이다.

시퀀스 다이어그램, 클래스 다이어그램을 단순한 그림으로 생각 하면 아니된다. 한 눈에 전체를 볼수는 없기 때문이다.


클래스 다이어그램

각각의 사각형(클래스)를 살펴보고, 그 안에 쓰여있는 메소드 명이 보통 메소드인지, 추상 메소드인지를 확인한다.

클래스 사이의 화살표를 확인하고 어느 클래스가 어떤 인터페이스를 구현하고 있는가를 확인한다.

다이어그램 안의 구성요소가 무엇을 의미하고 있는지 꼼꼼하게 따져보면, 다이어그램에 담겨 있는 전체적인 의미를 이해할 수 있습니다.


시퀀스 다이어그램

클래스 다이어그램보다 편하게 읽을 수 있다.

시간은 위에서 아래로 흐르기 때문에 순서에 따라 어느 오브젝트(객체)에서 어느 오브젝트(객체)가 호출되고 있는지를 하나씩 확인할 수 있다.

그렇게 하면 패턴 안의 각 오브젝트(객체)의 역할을 조금씩 이해할 수 있을 것입니다.


※ 다이어그램의 의미는 얼핏보고 한 번에 파악할 수가 없으니 꼼꼼하게 읽고 확인 할 필요가 있다.



4. 스스로 예제를 만들자

단순히 예제 프로그램을 읽지만 말고 만들어 보자



5. 역할을 이해하자

디자인 패턴마다 클래스나 인터페이스에 각자의 역할이 주어진다.

역할을 이해해서 어떤 역할을 수행하는지 주목해야한다




위는 Design Patterns를 공부하기전 함양하면 좋을 개념들을 정리한 것이며,

Design Patterns에 관하여 추후에 포스트를 올릴 예정입니다