일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 어노테이션
- 정처기공부
- 스프링부트
- 자바
- 정처기
- function
- 소프트웨어설계
- 스프링
- 프로그래머스
- 정처기예상문제
- 파이썬
- 게시판
- 게시판프로젝트
- 소프트웨어개발
- 코딩테스트
- springboot
- 게시판만들기
- 이것이자바다
- java
- spring
- 정보처리기사필기
- CRUD
- PYTHON
- 자바의정석
- 파이선
- 자바의정석요약
- 정처기필기
- 정처기설명
- CRUD구현
- 정보처리기사
- Today
- Total
Helmi
1. 소프트웨어 설계 - GoF(Gangs of Four) 디자인 패턴 종류 본문
생성 패턴(Creational Pattern)
- 추상 팩토리(Abstract Factory) : 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관·의존하는 객체들의 그룹으로 생성하여 추상적으로 표현하는 패턴
- 빌더(Builder) : 작게 분리된 인스턴스를 건축하듯 조합하여 객체 생성하는 패턴, 객체의 생성 과정과 표현 방법을 분리하고 있어, 동일한 객체 생성에서도 서로 다른 결과 만들어 낼 수 있음
- 팩토리 메소드(Factory Method) : 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴으로, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당함.
- 프로토 타입(Prototype) : 원본 객체를 복제하는 방법으로 객체 생성하는 패턴
- 싱글톤(Singleton) : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있으나 여러 프로세스 동시에 참조할 수 없는 패턴
구조 패턴(Structural Pattern)
- 어댑터(Adaptor) : 호환성 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴
- 브리지(Bridge) : 구현부에서 추상층을 분리하여, 서로가 독립적으로 확장할 수 있도록 구성한 패턴
- 컴포지트(Composite) : 여러 객체를 가진 복합 객체와 단일 객체를 구분 없이 다루고자 할 때 사용하는 패턴
- 데코레이터(Decorator) : 객체 간의 결합 통해 능동적으로 기능들을 확장할 수 있는 패턴
- 퍼싸드(Facade) : 복잡한 서브 클래스들을 피해 더 상위에 인터페이스를 구성함으로써 서브 클래스들의 기능을 간편하게 사용할 수 있도록 하는 패턴
- 플라이웨이트(Flyweight) : 인스턴스가 필요할 때마다 매번 생성하는 것 아니고 가능한 한 공유해서 사용함으로써 메모리 절약하는 패턴
- 프록시(Proxy) : 접근이 어려운 객체와 여기에 연결하려는 객체 사이에서 인터페이스 역할을 수행하는 패턴
행위 패턴(Behaviroal Pattern)
- 책임 연쇄(Chain of Responsibility) : 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴
- 커맨드(Command) : 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴
.
- 인터프리터(Interpreter) : 언어에 문법 표현을 정의하는 패턴
- 반복자(Iterator) : 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴
- 중재자(Mediator) : 수많은 객체들 간의 복잡한 상호작용(interface)을 캡슐화하여 객체로 정의하는 패턴
- 메멘토(Memento) : 특정 시점에서의 객체 내부 상태를 객체화함으로써 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능 제공하는 패턴
- 옵서버(Observer) : 한 객체의 상태 변화하면 객체에 상속되어 있는 다른 객체들에게 변화된 상태 전달하는 패턴