디자인 패턴은 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 전형적인 해결책이다. 이는 코드에서 반복되는 디자인 문제들을 해결하기 위해 맞춤화한 미리 만들어진 청사진과 비슷하다.
표준화된 라이브러리들이나 함수들을 코드에 복사해 사용하는 것처럼 패턴들을 붙여넣기 식으로 사용할 수 없다. 패턴은 재사용할 수 있는 코드 조각이 아니라 특정 문제를 해결하는 방식을 알려주는 일반적인 개념들이다. 따라서 패턴 세부 개념들을 적용해 프로그램에 맞는 해결책을 구현할 수 있게 도와준다.
생성 패턴
기존 코드를 재활용하고 유연성을 증가시키는 객체 생성 매커니즘을 제공한다.
구조 패턴
구조를 유연하고 효율적으로 유지하면서 객체와 클래스를 더 큰 구조로 조합하는 방법을 설명한다.
행동 패턴
객체 간 효과적인 의사소통과 책임 할당을 처리한다.
다양한 디자인 패턴은 소프트웨어 디자인의 일반적인 문제들에 대해 시도되고 검증된 해결책들을 모은 것이다. 따라서 패턴을 배우게 되면 객체지향 디자인 원칙들을 사용해 많은 종류의 문제를 해결하는 방법들을 배울 수 있다.
디자인 패턴은 팀원들과 더 효율적으로 의사소통하는데 사용할 수 있는 공통 언어이다.
디자인 패턴에 뛰어들기
스프링 입문을 위한 자바 객체 지향의 원리와 이해