기억저장소

기억저장소

디자인패턴

객체지향 원칙과 디자인 패턴 종류

roaminpixel 2018. 5. 23. 01:42
728x90

1. 객체지향 원칙

- OCP (Open Closed Principle) : 클래스는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다.
- SRP (Single Responsibility Principle): 한 클래스는 하나의 책임만 가져야 한다.
- LSP (Liskov Substitution Principle): 자식 클래스는 부모 클래스로 교체가능해야 한다.
- DIP (Dependency Inversion Principle):
    . 상위 레벨 모듈은 하위 레벨 모듈에 의존해서는 안 된다.
    . 모든 레벨의 모듈은 추상화에 의존해야 한다.
- ISP (Interface Segregation Principle): 클라이언트는 필요하지 않는 인터페이스에 의존해서는 안 된다. 큰 인터페이스보다는 작고 명확한 인터페이스를 사용해야 한다.


2. 디자인 패턴의 종류

1. 생성 패턴 (Creational Patterns)
   - Abstract Factory: 주제별로 연관된 팩토리를 묶는다.
   - Builder: 복잡한 객체의 생성과 표현을 분리한다.
   - Factory Method: 객체 생성 시 구체적인 클래스를 명시하지 않는다.
   - Prototype: 기존 객체를 복제하여 객체를 생성한다.
   - Singleton: 한 클래스에는 단 하나의 인스턴스만 존재하도록 한다.

2. 구조 패턴 (Structural Patterns)
   - Adapter: 서로 다른 인터페이스를 가진 클래스들을 함께 사용할 수 있도록 한다.
   - Bridge: 추상화와 구현을 분리하여 독립적으로 변화할 수 있게 한다.
   - Composite: 객체들을 트리 구조로 구성하여 부분과 전체 계층을 표현한다.
   - Decorator: 객체의 행동을 동적으로 확장한다.

3. 행위 패턴 (Behavioral Patterns)
   - Chain of Responsibility: 요청을 처리할 수 있는 객체의 연쇄를 통해 요청을 전달한다.
   - Command: 명령을 객체화하여 실행, 취소, 저장 등의 작업을 수행한다.
   - Iterator: 집합 객체의 원소에 순차적으로 접근하는 방법을 제공한다.
   - Mediator: 객체 간의 상호작용을 중재자 객체를 통해 처리한다.
   - Observer: 객체의 상태 변화를 관찰하는 관찰자들에게 알린다.
   - State: 객체의 내부 상태에 따라 여러 행동을 변경할 수 있도록 한다.
   - Strategy: 여러 알고리즘을 하나의 그룹으로 정의하고, 이를 상호 교환 가능하게 만든다.


728x90
반응형