[디자인패턴] 디자인 패턴이란?
2021년 02월 19일, 19:30
디자인 패턴이란?
- 설계 문제에 대한 해답을 문서화하기위해 고안된 형식 방법
- 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론
- 좋은 코드(SOLID) 원칙이 지켜지는 코드
- GoF(Gang of Fout)
- 에리히 감마(Erich Gamma), 리차드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시디스(John Vissides)
- Design Patterns: Elements of Reusable Object-Oriented Software에서 구체적으로 처음 등장
- 23가지의 디자인 패턴을 정리하고, 각각 디자인 패턴을 생성(Credential), 구조(Structural), 행위(Behavioral) 3가지로 구분
디자인 패턴의 분류(GoF)
-
생성(Credential)
- 객체의 생성에 관련된 패턴
- 객체의 생성과 조합을 캡슐화해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성 제공
- 종류
- 싱글턴(Singleton)
- 빌더(Builder)
- 팩토리 메소드(Factory Method)
- 프로토타입(Prototype)
- 추상 팩토리(Abstract Factory)
-
구조(Structural) 패턴
- 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
- 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스로 제공하거나 객체들을 서로 묶어 새로운 기능을 제공하는 패턴
- 종류
- 어댑터(Adapter)
- 브리지(Bridge)
- 컴퍼지트(Composite)
- 데커레이터(Decorator)
- 퍼사드(Facade)
- 플라이웨이트(Flyweight)
- 프록시(Proxy)
-
행위(Behavioral) 패턴
- 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
- 종류
- 책임 연쇄(Chain of Responsibility)
- 커맨드(Command)
- 인터프리터(Interpreter)
- 이터레이터(Iterator)
- 미디에이터(Mediator)
- 메멘토(Memento)
- 옵저버(Observer)
- 스테이트(State)
- 스트레티지(Strategy)
- 템플릿 메소드(Template Method)
- 비지터(Visitor)
참고
- https://ko.wikipedia.org/wiki/%EB%94%94%EC%9E%90%EC%9D%B8_%ED%8C%A8%ED%84%B4
- https://jwprogramming.tistory.com/68
- https://dailyheumsi.tistory.com/148
asdfas | basdfasf |
---|---|
a | a |