본문 바로가기

Programming/Design Patterns

(8)
GoF 디자인 패턴 - 데코레이터 패턴 (Decorator Pattern) 1. 데코레이터 패턴이란?데코레이터 패턴은 객체에 추가적인 책임(기능)을 동적으로 부여할 수 있게 해주는 구조 패턴이다. 서브클래싱 없이도 기능을 확장할 수 있으며, 개방-폐쇄 원칙(OCP)을 잘 지킨 설계 방식이다.특징동적 기능 확장: 런타임에 객체의 기능을 유연하게 추가 가능OCP 준수: 기존 코드를 수정하지 않고도 기능을 확장조합성 증가: 다양한 데코레이터를 조합해 기능을 유연하게 구성 가능 2. 데코레이터 패턴의 구조Component (컴포넌트): 기본 인터페이스 또는 추상 클래스ConcreteComponent (구현체): 실제 기능을 수행하는 클래스Decorator (데코레이터): Component를 구현하고 자신 안에 Component 참조ConcreteDecorator (구체 데코레이터): ..
GoF 디자인 패턴 - 브릿지 패턴 (Bridge Pattern) 1. 브릿지 패턴이란?브릿지 패턴은 구현(Implementation)과 추상화(Abstraction)를 분리하여 각자 독립적으로 확장할 수 있게 해주는 구조 패턴이다. 즉, 추상적인 기능과 그 기능의 실제 구현을 분리하여 변경이 유연하게 이루어질 수 있도록 한다.특징구현과 추상화의 분리: 서로 독립적으로 확장 가능유지보수 용이: 코드 변경 시 영향 범위가 작아진다클래스 수 감소: 기능 조합이 많아질 경우 클래스 폭증을 방지한다2. 브릿지 패턴의 구조Abstraction(추상화): 클라이언트가 사용하는 인터페이스를 정의하며, 구현체 객체에 위임RefinedAbstraction(확장된 추상화): Abstraction의 확장, 구체적인 기능 제공Implementor(구현 인터페이스): Abstraction에서..
GoF 디자인 패턴 - 어댑터 패턴 (Adapter Pattern) 1. 어댑터 패턴이란?어댑터 패턴은 구조 패턴 (Structural Patterns)의 하나로써 서로 호환되지 않는 인터페이스를 가진 클래스들을 함께 동작하도록 연결해주는 구조 패턴이다. 마치 전기 콘센트의 어댑터처럼, 기존 클래스의 인터페이스를 클라이언트가 기대하는 인터페이스로 변환하여 사용 가능하게 만든다. 특징인터페이스 호환 문제 해결: 기존 코드를 수정하지 않고도 새 코드와 호환되게 만든다.기존 시스템 재사용성 증가: 이미 존재하는 클래스를 변경 없이 재활용할 수 있다.SOLID 원칙 중 개방/폐쇄 원칙(OCP)과 단일 책임 원칙(SRP)을 지킴 2. 어댑터 패턴의 구조Target(목표 인터페이스): 클라이언트가 기대하는 인터페이스Adaptee(적응 대상 클래스): 기존에 호환되지 않는 인터페이..
GoF 디자인 패턴 - 프로토타입 패턴 (Prototype Pattern) 1. 프로토타입 패턴이란?프로토타입 패턴은 생성 패턴 (Creational Patterns)의 하나로써 기존 객체를 복사하여 새로운 객체를 생성하는 생성 패턴이다. 객체를 일일이 생성하는 대신, 기존 객체를 복제(clone)하여 동일한 값과 상태를 가진 객체를 빠르게 만들 수 있도록 한다.특징객체 생성 비용 절감: 복잡한 객체를 새로 생성하는 것보다 기존 객체를 복제하는 것이 비용적으로 효율적이다.객체 생성 과정 단순화: 직접 생성자 호출 없이 동일한 속성을 가진 객체를 쉽게 만들 수 있다.런타임 동적 객체 생성 가능: 클래스의 인스턴스를 런타임에서 복제하여 유연한 객체 생성을 지원한다.2. 프로토타입 패턴의 구조Prototype(프로토타입 인터페이스): 객체 복제를 위한 clone() 메서드를 정의한다..
GoF 디자인 패턴 - 빌더 패턴 (Builder Pattern) 1. 빌더 패턴이란?빌더 패턴은 생성 패턴 (Creational Patterns)의 하나로써 복잡한 객체의 생성을 단계적으로 수행하며, 다양한 구성 방법을 제공하는 생성 패턴이다. 객체의 생성 과정과 표현을 분리하여 동일한 생성 절차에서 서로 다른 표현의 객체를 만들 수 있도록 한다.특징객체의 생성 과정 분리: 클라이언트가 객체의 생성 과정을 알 필요 없이, 빌더가 단계적으로 객체를 구성한다.가독성 및 유지보수성 향상: 생성자에 많은 매개변수를 전달하는 방식보다 직관적인 방식으로 객체를 구성할 수 있다.불변 객체 생성에 유리: 필드가 많은 객체를 생성할 때, 불변성을 유지하기 쉽게 설계할 수 있다.2. 빌더 패턴의 구조Product(제품 클래스): 빌더를 통해 생성될 복잡한 객체를 정의한다.Builder..
GoF 디자인 패턴 - 추상 팩토리 패턴 (Abstract Factory Pattern) 1. 추상 팩토리 패턴이란?추상 팩토리 패턴은 생성 패턴 (Creational Patterns)의 하나로써 관련된 객체들의 집합을 생성할 수 있도록 하는 패턴으로, 구체적인 클래스를 지정하지 않고도 객체를 생성할 수 있도록 한다. 특정 제품군에 속하는 객체들을 일관된 방식으로 생성하는 데 유용하다.특징일관된 객체 생성: 동일한 제품군에 속하는 객체들을 일관된 방식으로 생성할 수 있다.구체적인 클래스의 의존성 제거: 클라이언트 코드에서 특정 구현 클래스를 직접 참조하지 않도록 할 수 있다.객체 생성의 확장성 향상: 새로운 제품군을 추가할 때 기존 코드 변경을 최소화할 수 있다.2. 추상 팩토리 패턴의 구조AbstractFactory(추상 팩토리 인터페이스): 제품군을 생성하는 메서드를 선언한다.Concre..
GoF 디자인 패턴 - 팩토리 메서드 패턴 (Factory Method Pattern) 소프트웨어 개발에서 객체의 생성과 관리는 중요한 설계 요소 중 하나이다. GoF(Gang of Four) 디자인 패턴 중 생성 패턴(Creational Patterns)은 객체의 생성과 관련된 문제를 해결하는 패턴으로, 보다 유연하고 효율적인 객체 생성을 돕는다. 이 중 팩토리 메서드 패턴은 객체 생성을 캡슐화하여 코드의 유연성과 유지보수성을 향상시키는 데 중점을 둔다.1. 팩토리 메서드 패턴이란?팩토리 메서드 패턴은 생성 패턴 (Creational Patterns)의 하나로써 객체 생성을 캡슐화하여 객체의 구체적인 생성 과정을 서브클래스에서 정의하도록 하는 패턴이다. 즉, 객체 생성을 담당하는 팩토리 메서드를 제공하여, 객체 생성을 위한 코드를 직접 작성하는 대신 서브클래스에서 필요에 따라 인스턴스를 ..
GoF 디자인 패턴 - 싱글톤 패턴 (Singleton Pattern) 소프트웨어 개발에서 객체의 생성과 관리는 중요한 설계 요소 중 하나이다. 싱글톤 패턴(Singleton Pattern)은 특정 클래스의 인스턴스를 오직 하나만 생성하고, 이를 전역적으로 접근할 수 있도록 보장하는 디자인 패턴이다. 이 패턴은 주로 설정 관리, 로깅 시스템, 데이터베이스 연결과 같은 공유 자원을 관리할 때 유용하게 사용된다.1. 싱글톤 패턴이란?싱글톤 패턴은 생성 패턴 (Creational Patterns)의 하나로써 클래스의 인스턴스를 하나만 유지하도록 제한하는 디자인 패턴이다. 이를 통해 메모리 사용을 최적화하고, 전역적인 접근점을 제공하여 여러 객체 간의 데이터 일관성을 유지할 수 있다. 싱글톤 패턴을 사용하면 불필요한 객체 생성을 방지할 수 있어 성능 향상에도 기여한다.특징유일한 인..

반응형