2 min to read
디자인패턴
디자인 패턴은 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책입니다.
디자인 패턴은 크게 3가지로 나눌 수 있습니다. 1. 생성 패턴, 2. 구조 패턴, 3. 행동 패턴입니다.
생성 패턴은 객체 인스턴스 생성을 위한 패턴으로, 클라이언트와 그 클라이언트에서 생성해야 할 객체 인스턴스 사이의 연결을 끊어주는 패턴입니다.
구조 패턴은 클래스 및 객체들의 구성을 통해서 더 큰 구조로 만들 수 있게 해주는 것과 관련된 패턴입니다.
행동 패턴은 클래스와 객체들이 상호작용하는 방법 및 역할을 분담하는 방법과 관련된 패턴입니다.
- 생성 패턴
- Singleton pattern(싱글톤 패턴)
- 딱 한 객체만 생성되도록 합니다.
- Abstract Factory(추상 팩토리 패턴)
- 클라이언트에서 구상 클래스를 지정하지 않으면서도 일군의 객체를 생성할 수 있도록 합니다.
- Builder pattern(빌더 패턴)
- 제품을 여러 단계로 나눠서 만들 수 있도록 제품 생산 단계들을 캡슐화할 때 사용합니다.
- 추후 작성
- Factory Method pattern(팩토리 메서드 패턴)
- 생성할 구상 클래스를 서브클래스에서 결정합니다.
- 추후 작성
- Prototype pattern(프로토타입 패턴)
- 어떤 클래스의 인스턴스를 만드는 것이 자원/시간을 많이 잡아먹거나 복잡한 경우 사용합니다.
- 추후 작성
- Singleton pattern(싱글톤 패턴)
- 구조 패턴
- Adapter pattern(어댑터 패턴)
- 객체를 감싸서 다른 인터페이스를 제공합니다.
- 추후 작성
- Bridge pattern(브릿지 패턴)
- 구현 뿐만 아니라 추상화된 부분까지 변경시켜야 하는 경우 사용합니다.
- 추후 작성
- Composite pattern(컴포지트 패턴)
- 클라이언트에서 객체 컬렉션과 객발 객체를 똑같이 다룰 수 있도록 합니다.
- 추후 작성
- Decorator pattern(데코레이터 패턴)
- 객체를 감싸서 새로운 행동을 제공합니다.
- 추후 작성
- Facade pattern(퍼사드 패턴)
- 일련의 클래스에 대해서 간단한 인터페이스를 제공합니다.
- 추후 작성
- Flyweight pattern(플라이웨이트 패턴)
- 어떤 클래스의 인스턴스 한 개만 가지고 여러 개의 "가상 인스턴스"를 제공하고 싶을 때 사용합니다.
- 추후 작성
- Proxy pattern(프록시 패턴)
- 객체를 감싸서 그 객체에 대한 접근을 제어합니다.
- 추후 작성
- Adapter pattern(어댑터 패턴)
- 행동 패턴
- Chain of Responsibility pattern(역할 사슬 패턴)
- 한 요청을 두 개 이상의 객체에서 처리하고 싶을 때 사용합니다.
- 추후 작성
- Command pattern(커맨드 패턴)
- 요청을 객체로 감쌉니다.
- 추후 작성
- Interpreter pattern(인터프리터 패턴)
- 어떤 언어에 대한 인터프리터를 만들 때 사용합니다.
- 추후 작성
- Iterator pattern(이터레이터 패턴)
- 컬렉션이 어떤 식으로 구현되었는지 드러내진 않으면서도 컬렉션 내에 있는 모든 객체에 대해 반복 작업을 처리할 수 있게 합니다.
- 추후 작성
- Mediator pattern(미디에이터 패턴)
- 서로 관련된 객체 사이의 복잡한 통신과 제어를 한 곳으로 집중시키고자 할 때 사용합니다.
- 추후 작성
- Memento pattern(메멘토 패턴)
- 객체를 이전의 상태로 복구시켜야 하는 경우 사용합니다.
- 추후 작성
- Observer pattern(옵저버 패턴)
- 상태가 변경되면 다른 객체들한테 연락을 돌릴 수 있게 합니다.
- 추후 작성
- State pattern(상태 패턴)
- 알고리즘의 개별 단계를 구현하는 방법을 서브클래스에서 결정합니다.
- 추후 작성
- Strategy pattern(스트래티지 패턴)
- 교환 가능한 행동을 캡슐화하고 위임을 통해서 어떤 행동을 사용할지 결정합니다.
- 추후 작성
- Template Method pattern(템플릿 메서드 패턴)
- 알고리즘의 개별 단계를 구현하는 방법을 서브클래스에서 결정합니다.
- 추후 작성
- Visitor pattern(비지터 패턴)
- 다양한 객체에 새로운 기능을 추가해야 하는데 캡슐화가 별로 중요하지 않은 경우 사용합니다.
- 추후 작성
- Chain of Responsibility pattern(역할 사슬 패턴)
Comments