디자인 패턴: 자주 사용하는 설계 패턴을 정형화해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계
Gof디자인 패턴
소프트웨어를 설계 할 때는 기존에 경험이 매우 중요하다. 그러나 모든 사람들이 다양한 경험을 가지고 있을 수 는 없다.
이러한 지식을 공유하기 위해서 나온것이 GOF(Gang of Four)의 디자인 패턴이다. 객체지향 개념에 따른 설계 중 재사용할 경우 유용한 설계를 디자인 패턴으로 정리했다. 총 23가지의 패턴을 3가지 유형으로 분류하고있다.
디자인 패턴의 장점
- 개발자간의 원활한 소통
- 소프트웨어 구조 파악 용이
- 컴포넌트 재사용을 통한 개발 시간 단축
- 설계 변경 요청에 대한 유연한 대처가능
디자인 패턴의 단점
- 객체지향적인 설계/구현 (사고를 객체지향적으로 해야함)
- 초기 투자 비용 부담 (인터페이스부터,추상클래스 여러가지 구상을 해야해서 초기 비용이 듬)
생성 패턴(Creational Pattern)
- 객체를 생성하는데 관련된 패턴
- 객체가 생성되는 과정의 유연성을 높이고 코드의 유지를 쉽게 해줌
- 추상 팩토리(Abstract Factory)
- 빌더(Builder)
- 팩토리 메서드(Factory Methods)
- 프로토타입(Prototype)
- 싱글톤(Singleton)
구조 패턴(Structual Pattern)
- 프로그램 내의 자료구조나 인터페이스 구조 등 프로그램의 구조를 설계하는데 활용될 수 있는 패턴들
- 클래스, 객체들의 구성을 통해서 더 큰 구조를 만들 수 있게 해준다.
- 큰 규모의 시스템에선 많은 클래스들이 서로 의존성을 갖게되는데, 이러한 구조를 개발하기 쉽게, 유지 보수하기 쉽게 만들어준다.
- 어댑터(Adapter)
- 브리지(Bridge)
- 컴포지트(Composite)
- 데코레이터(Decorator)
- 퍼사드(Facade)
- 플라이웨이트(Flyweight)
- 프록시(Proxy)
행위 패턴(Behavioral Pattern)
- 반복적으로 사용되는 객체들의 상호작용을 패턴화 해놓은 것듯
- 책임 연쇄(Chain of Responsibility)
- 커맨드(Command)
- 인터프리터(Interpreter)
- 이터레이터(Iterator)
- 미디에이터(Mediator)
- 메멘토(Memento)
- 옵저버(Observer)
- 스테이트(State)
- 스트레티지(Strategy)
- 템플릿 메서드(Template Method)
- 비지터(Visitor)
참고자료: https://realzero0.github.io/study/2017/06/12/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-%EC%A0%95%EB%A6%AC.html
,
https://velog.io/@namezin/GoF-design-pattern
,
패스트캠퍼스
'IT기술 | 배경지식' 카테고리의 다른 글
무중단 배포 방법 3가지 (0) | 2022.06.12 |
---|