디자인패턴이란 프로그램 코드를 설계할 때 반복적으로 발생하는 문제들을 해결하기 위하여
맞춤화하여 '규약'형태로 미리 만들어 두는 것을 의미합니다.
디자인 패턴은 반복적으로 발생하는 문제들을 해결하기 위해 자주 쓰이는 방법들을
미리 규칙을 정해놓고 정리해놓았기때문에 여러 사람들과의 협업과정에 있어서
소모비용이 적다고 할 수 있습니다
또한 의사소통 수단의 일종으로서 협업을 할 때 어떠한 문제가 생겼을 때
'그 부분은 어떤패턴으로 해결하는게 어떤가요?' 식의 이미 정해져있는 디자인패턴을 제안함으로서
좀 더 쉬운 의사소통이 가능합니다
생성패턴은 객체를 생성하는 방법이 들어간 디자인패턴입니다.
싱글톤, 팩토리, 빌더, 추상팩토리, 프로토타입패턴이 있습니다.
구조패턴은 객체, 클래스 등으로 큰 구조를 만들 때 유연하고 효율적으로 만드는 방법이 들어간 패턴입니다.
프록시, 어댑터, 브리지, 복합체, 데코레이터, 퍼사드, 플라이웨이트패턴이 있습니다.
객체나 클래스 간의 알고리즘,책임 할당에 관한 디자인패턴입니다.
이터레이터, 옵저버, 전략, 책임연쇄, 커맨드, 중재자, 메멘토, 상태, 템플릿메서드, 비지터패턴이 있습니다.
이외에도 flux패턴, MVC패턴, MVVM패턴 등 수많은 디자인패턴이 있습니다.