Design Pattern Overview
디자인 패턴은 소프트웨어 디자인에서 자주 발생하는 문제를 해결하기 위한 일반적인 해결책입니다. 디자인 패턴은 크게 생성 패턴, 구조 패턴, 그리고 행동 패턴으로 나눌 수 있습니다.
생성 패턴
- 추상 팩토리 (Abstract Factory) : 관련성 있는 객체들의 집합을 생성하는 추상 인터페이스입니다.
- 빌더 (Builder) : 복잡한 객체를 생성하는 방법을 정의합니다.
- 팩토리 메서드 (Factory Method) : 객체를 생성하기 위한 인터페이스를 정의하고, 서브 클래스에서 객체의 타입을 결정합니다.
- 프로토타입 (Prototype) : 생성할 객체의 종류를 명세하기 위한 인스턴스입니다.
- 싱글톤 (Singleton) : 클래스의 인스턴스가 하나임을 보장합니다.
구조 패턴
- 어댑터 (Adapter) : 인터페이스가 호환되지 않는 클래스들을 함께 동작할 수 있도록 만듭니다.
- 브릿지 (Bridge) : 추상화와 구현을 분리하여 각자 독립적으로 변형할 수 있게 합니다.
- 컴포지트 (Composite) : 객체들을 트리 구조로 구성하여 부분-전체 계층을 표현합니다.
- 데코레이터 (Decorator) : 객체에 추가적인 요건을 동적으로 첨가합니다.
- 퍼사드 (Facade) : 서브 시스템에 대한 인터페이스를 제공하여, 서브 시스템을 더 쉽게 사용할 수 있게 합니다.
- 플라이웨이트 (Flyweight) : 객체의 메모리 사용량을 최소화합니다.
- 프록시 (Proxy) : 객체에 대한 대리 접근 방법을 제공합니다.
행동 패턴
- 책임 연쇄 (Chain of Responsibility) : 요청을 처리할 수 있는 객체를 연결하여 요청을 처리할 객체를 선택합니다.
- 커맨드 (Command) : 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 수행할 수 있도록 합니다.
- 인터프리터 (Interpreter) : 언어의 문법 규칙을 정의하고, 이를 구현하는 인터프리터를 사용하여 문장을 해석합니다.