💡 디자인 패턴이란?
객체 지향 프로그래밍 설계를 할 때 자주 발생하는 문제들에 대해 재사용할 수 있도록 만들어놓은 패턴 모음
✔️ 생성패턴
→ 객체의 인스턴스 생성에 관여하고 클래스 정의와 객체 생성 방식을 구조화, 캡슐화하는 패턴
Abrtract Factory 추상 팩토리 |
Builder 빌더 |
Factory Method 팩토리 메서드 |
Prototype 프로토타입 |
Singleton 싱글톤 |
구체적인 클래스 의존 X | 조립 | 상위 클래스에서 객체 생성 하위 클래스에서 인스턴스 생성 |
원형 복사(클론) | 하나의 객체만 생성 |
✔️ 구조패턴
→ 구조가 복잡한 시스템을 개발바하기 쉽도록 클래스나 객체들을 조합하여 더 큰 구조로 만드는 패턴
Adapter 어댑터 |
Bridge 브릿지 |
Composite 컴포지트 |
Decorator 데코레이터 |
Facade 퍼싸드 |
Flyweight 플라이웨이트 |
Proxy 프록시 |
중간 역할 (변환) |
연결 구현, 추상화 분리 |
부분 - 전체 구분 X 사용 |
장식 추가 (능동적 기능 확장) |
단순 + 통합된 인터페이스 제공 |
경량화 목적 | 대리 객체 |
✔️ 행위패턴
→ 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴
Chain of Responsibility 책임 연쇄 |
Command 커맨드 |
Interpreter 인터프리터 |
Iterator 반복자 |
Mediator 중재자 |
Memento 메멘토 |
한 객체가 처리 X ➡️ 다른 객체로 전달 |
필요 정보 저장, 로그 | 언어 문법 표현 정의 | 동일 인터페이스 사용 | 통제 및 지시 역할 중재자 |
undo, 복원 |
Observer 옵저버 |
State 상태 |
Strategy 전략 |
Template Method 템플릿 메서드 |
Visitor 방문자 |
상태변경 ➡️ 다른 객체 연락 |
상태에 따라 처리 | 캡슐화된 클래스 필요시 교환 |
상위 골격 구성 하위 세부 처리 (구체화) |
클래스를 돌아다님 처리 기능 분리 |
[요약 정리]
💡 생성패턴 Creational Pattern
- Abstract Factory : 구체적인 클래스에 의존 X, 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴
- Builder : 생성 과정과 표현 방법 분리 ➡️ 동일한 생성 절차에서 서로 다른 표현 결과 만들 수 있게 하는 패턴
- Factory Method : 상위 클래스에서 객체 생성 인터페이스 정의, 하위 클래스에서 인스턴스 생성하는 패턴
- Prototype : 원본 객체 복제하여 새 객체 생성할 수 있도록 하는 패턴
- Singleton : 유일한 하나의 인스턴스를 보장하도록 하는 패턴
💡 구조패턴 Structural Pattern
- Bridge : 추상과 구현을 분리해서 결합도를 낮춘 패턴 (독립적 확장 가능)
- Decorator : 객체 간의 결합을 통해 능동적 기능 확장 가능한 패턴, 소스 변경하지 않고 기능 확장 가능
- Facade : 하나의 인터페이스를 토앻 느슨한 결합을 제공하는 패턴
- Flyweight : 대량의 작은 객체들을 공유하는 패턴 (메모리 절약)
- Proxy : 대리인이 대신 그 일을 처리하는 패턴
- Composite : 개별 객체와 복합 객체를 클라이언트에서 동일하게 사용하도록 하는 패턴
- Adapter : 호환성이 없는 클래스들의 인터페이스를 다른 클래스가 이용할 수 있도록 변환해주는 패턴
💡 행위패턴 Behavior Pattern
- Interpreter : 언어에 문법 표현을 정의하는 패턴 (언어 규칙 클래스 이용)
- Templete Method : 상위 클래스에서 골격 정의 , 하위 클래스에서 세부 처리 구체화하는 구조의 패턴
- Chain of Responsibility : 객체끼리 연결 고리를 만들어 내부적으로 전달하는 패턴
- Command : 요청 자체를 캡슐화해 파라미터로 넘기는 패턴
- Iterator : 내부 표현 숨기고 순회하는 패턴, 접근이 잦은 객체에 대해 동일한 인터페이스 사용하도록 하는 패턴
- Mediator : 객체 간의 상호작용을 캡슐화한 패턴
- Memento : undo, 상태 값을 미리 저장해두었다가 복구, 복원하는 패턴
- Observer : 상태가 변할 때 의존자들에게 알리고 자동으로 업데이트하는 패턴
- State : 객체 내부 상태에 따라서 행위를 변경하는 패턴
- Strategy : 다양한 알고리즘을 개별 캡슐화하여 상호 교환, 알고리즘 대체가 가능하도록 하는 패턴
- Visitor : 오퍼레이션을 별도의 클래스에 새롭게 정의한 패턴
'정보처리기사[실기]' 카테고리의 다른 글
[개념정리] 럼바우 데이터 모델링 (0) | 2024.10.15 |
---|---|
[개념정리] 결합도와 응집도 (0) | 2024.10.15 |
[6과목_프로그래밍 언어 활용] Python 예상 문제(수제비 카페) (1) | 2024.10.14 |
[6과목_프로그래밍 언어 활용] Python 예상 문제 (수제비카페) (2) | 2024.10.14 |
[Python] 24년 기출 문제 풀이 (1회, 2회) (0) | 2024.10.14 |