논문 "Using Pattern Languages for Object-Oriented Programs" (1987)을 통해 제안되었다.
이후 큰 유명세를 타게 된 것은 23개의 패턴을 수록한 'GoF'(Gang of Fours). Design Patterns: Elements of Reusable Object-Oriented Software. (1995)이다.
현재에는 수천여개의 패턴이 발표되어 있다.
객체 지향 프로그래밍이 각광받으면서 재사용 관점에서 상호간 커뮤니케이션 문제가 될 부분이 많이 있었다. 그래서 문제를 줄이고자 규약(프로토콜)을 만들어야될 필요가 자연스럽게 생기지 않았나 싶다.
객체 생성(인스턴스화)
특정 개체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성 제공
객체 결합(조합)
클래스나 객체를 조합하여 더 큰 구조를 만드는 패턴
객체 간 커뮤니케이션
객체(클래스)사이에 알고리즘이나 책임 분배에 관련한 패턴
결합도를 최소화하는 것에 중점을 둔다
빌드 패턴 : https://asfirstalways.tistory.com/350
팩토리메소드 패턴 : https://jdm.kr/blog/180
싱글톤 패턴 : https://elfinlas.github.io/2019/09/23/java-singleton/
어댑터 패턴 : https://gdtbgl93.tistory.com/141
어댑터 패턴 : https://blog.seotory.com/post/2017/09/java-adapter-pattern
Bridge 패턴 : https://ko.wikipedia.org/wiki/%EB%B8%8C%EB%A6%AC%EC%A7%80_%ED%8C%A8%ED%84%B4
컴포지트 패턴 : https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8F%AC%EC%A7%80%ED%8A%B8_%ED%8C%A8%ED%84%B4
컴포지트 패턴 : https://gmlwjd9405.github.io/2018/08/10/composite-pattern.html
데코레이터 패턴 : https://johngrib.github.io/wiki/decorator-pattern/#fnref:gof