본문 바로가기
정보처리기사

정보처리기사 : 디자인패턴

by 스노위13 2023. 4. 21.

1.생성 패턴 : 객체를 생성하고, 클래스 정의와 객체 생성 방식을 구조화, 캡슐화를 수행하는 패턴

- 추상 팩토리(Abstract Factory) 패턴: 서로 연관되거나 의존적인 객체들의 집합을 생성하기 위한 공통 인터페이스를 제공하는 패턴
- 팩토리 메서드(Factory Method) 패턴 : 객체를 생성하기 위한 인터페이스를 정의하는 패턴, 객체를 생성하기 위한 인터페이스를 제공하며, 객체 생성에 대한 책임을 서브 클래스에서 분리(오버로딩함)
- 빌더(Builder) 패턴: 복잡한 객체를 생성하는 데 사용되는 패턴, 객체 생성 과정을 캡슐화하며 객체를 생성하는 방법과 객체를 구현하는 방법을 분리
- 프로토타입(Prototype) 패턴 : 일반적인 원형을 만들어 놓고, 그것을 복제하여 새로운 객체를 생성
- 싱글톤(Singleton) 패턴 : 전체 시스템에서 오직 하나의 인스턴스만을 생성하는 패턴으로 생성된 객체를 어디에서든지 참조 가능

2. 구조 패턴 : 클래스나 객체들을 조합하여 더 큰 구조를 만드는 방법에 대한 패턴

- 어댑터(Adapter) 패턴: 호환되지 않는 인터페이스를 가진 객체들을 함께 사용할 수 있게 변환해주는 패턴
- 브리지(Bridge) 패턴: 추상화와 구현을 분리하여 각각 독립적으로 확장할 수 있는 패턴
- 컴포지트(Composite) 패턴: 객체들을 트리 구조로 구성하여 부분과 전체를 나타내는 계층 구조를 만드는 패턴
- 데코레이터(Decorator) 패턴: 객체에 새로운 기능을 동적으로 추가할 수 있는 패턴
- 퍼사드(Facade) 패턴: 복잡한 서브 시스템에 대한 간단한 인터페이스를 제공하는 패턴
- 프록시(Proxy) 패턴: 객체에 대한 대체자를 제공하는 패턴으로 객체에 대한 접근을 제어하거나 객체의 생성을 늦추는 등의 추가적인 기능을 제공할 수 있음
- 플라이웨이트(Flyweight) 패턴: 공통 요소를 클래스화하여 공유함으로써 메모리를 절약하고 클래스의 경량화를 목적으로 하는 패턴

3. 행위패턴 :  객체 간 상호작용과 책임 분배를 중심으로 설계되는 패턴

- Template Method Pattern (템플릿 메소드 패턴): 상위 클래스에서 알고리즘의 구조를 정의하고, 하위 클래스에서 알고리즘의 구체적인 구현을 담당
- Command Pattern (커맨드 패턴): 실행될 기능을 캡슐화하여 객체로 만들고, 명령이 들어오면 이를 조합하여 요청을 수행하는 패턴
- Iterator Pattern (반복자 패턴): 컬렉션의 내부 구조를 노출하지 않고, 컬렉션의 모든 요소에 대해 순차적으로 접근할 수 있도록 해주는 패턴
- Observer Pattern (옵저버 패턴): 일대다 종속 관계를 구성하여, 어떤 객체의 상태가 변경되면 그 객체에 종속된 다른 객체들에게 자동으로 통지되는 패턴
- Strategy Pattern (전략 패턴): 알고리즘을 독립적으로 캡슐화하여, 동일한 문제를 해결하기 위해 여러 가지 알고리즘이 존재할 때, 이를 동적으로 교체하며 사용할 수 있도록 해주는 패턴
- Chain of Responsibility Pattern (책임 연쇄 패턴): 요청을 처리할 객체를 연결하여, 요청을 처리할 객체를 찾을 때까지 객체의 연결을 따라가는 패턴
- Visitor Pattern (방문자 패턴): 객체 구조와 처리를 분리하여, 객체 구조 내에 있는 모든 객체에 대해 일관된 작업을 수행할 수 있도록 해주는 패턴
- Memento 패턴: 객체의 상태를 저장하고 이를 복원하는 기능을 제공하는 패턴
- Interpreter 패턴: 문법적인 표현식을 해석하고 실행하는 기능을 제공하는 패턴입니다. 
- State 패턴 : 객체의 상태에 따라 객체의 행동이 달라지는 기능을 제공하는 패턴

댓글