프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 ‘규약’ 형태로 만들어 놓은 것으로 라이브러리나 프레임워크를 만드는 데 기초적인 원리가 된다.

디자인 패턴의 종류