728x90
소프트웨어 디자인에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 특정한 상황에 맞게 사용될 수 있는 구조적 문제들을 해결하는데 쓰이는 서술이나 템플릿.
디자인 패턴은 외우기보다는 어떠한 패턴이 있는지 알고 수많은 디자인 패턴에서 다양한 코딩 노하우를 습득하는것이 중요하다고 생각합니다. "이 코드에는 무조건 이 패턴을 적용시킬거야!" 이것이 아니라 여러가지 패턴이 자연스럽게 내 코드에 녹아드는것이 좋다고 생각합니다.
즉, 모든 곳에 패턴을 적용하려고 하면 안 된다.
디자인 패턴의 종류
- 생성(Creational) 패턴
- 객체 생성에 관련된 패턴
- 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공
- 구조(Structural) 패턴
- 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
- 예를 들어 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나 객체들을 서로 묶어 새로운 기능을 제공하는 패턴이다.
- 행위(Behavioral) 패턴
- 클래스와 객체들이 상호작용하는 방법과 역할 분담하는 방법을 다루는 패턴
- 체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하는지, 또 그렇게 하면서도 객체 사이의 결합도를 최소화하는 것에 중점
생성 패턴 | 구조 패턴 | 행동 패턴 |
---|---|---|
싱글톤 (Singleton) | 어댑터 (Adapter) | 책임 연쇄 (Chain-of-Responsibility) |
팩토리 메소드 (Factory Method) | 브릿지 (Bridge) | 커맨드 (Command) |
추상 팩토리 (Abstract Factory) | 컴포짓 (Composite) | 인터프리터 (Interpreter) |
빌더 (Builder) | 데코레이터 (Decorator) | 이터레이터 (Iterator) |
프로토타입 (Prototype) | 퍼사드 (Facade) | 중재자 (Mediator) |
플라이웨이트 (Flyweight) | 메멘토 (Memento) | |
프록시 (Proxy) | 옵저버 (Observer) | |
상태 (State) | ||
전략 (Strategy) | ||
템플릿 메소드 (Template Method) | ||
비지터 (Visitor) |
728x90
'CS > 디자인 패턴' 카테고리의 다른 글
팩토리 패턴(factory pattern) (0) | 2023.01.13 |
---|---|
싱글톤 패턴 (Singleton) (0) | 2023.01.12 |
MVC pattern (0) | 2021.07.02 |
댓글