728x90
반응형
이 포스팅은 깊고 꼼꼼한 정리를 위한 글이 아니며, 디자인 패턴에 전반적인 큰 맥락 정리를 위한 포스팅입니다.
디자인 패턴
디자인 패턴이란, 프로그램을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결할 수 있도록 하나의 규약 형태로 만들어 놓은것.
- 바퀴를 다시 발명하지 마라
-> 이미 만들어져 잘 되는것을 처음부터 다시 만들 필요는 없다.
디자인패턴의 종류
- 생성(Creational) 패턴
- 객체 생성에 관련된 패턴
- 객체의 생성과 조합을 캡슐화해, 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다.
- 구조(Structural) 패턴
- 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
- 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나, 객체들을 서로 묶어 새로운 기능을 제공하는 패턴
- 행위(Behavioral) 패턴
- 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
- 결합도를 최소화 하는것에 중점
- 객체(클래스) 사이의 알고리즘이나 책임 분배에 관련된 패턴
생성(Creational) 패턴 | 구조(Structural) 패턴 | 행위(Behavioral) 패턴 |
추상 팩토리(Abstract Factory) | 어뎁터(Adater) | 책임연쇄(Chain of Responsibility) |
빌더(Builder) | 브리지(Brige) | 커멘드(Command) |
팩토리 메서드(Factory Method) | 컴퍼지트(Composite) | 인터프리터(Interpreter) |
프로토타입(Prototype) | 테코레이터(Decorator) | 미디에이터(Mediator) |
싱글턴(Singleton) | 퍼사드(Facade) | 메멘토(Memeto) |
플라이웨이트(Flyweight) | 옵저버(Observer) | |
프록시(Proxy) | 전략(Strategy) | |
테이트(State) | ||
템플릿 메서드(Template Method) | ||
비지터(Visitor) |
반응형