SOFTWARE DESIGN PATTERN

SOFTWARE DESIGN PATTERN

[SOFTWARE DESIGN PATTERN] 06 커맨드 패턴(Command Pattern)

커맨드 패턴(Command Pattern)이란? 커맨드 패턴을 사용하면 요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있다. 커맨드 패턴의 주요 구성요소 1. 커맨드(Command): 요청을 나타내는 인터페이스이다. execute 메서드를 통해 실제 요청을 수행한다. 2. 컨크리트 커맨드(Concrete Command): Command 인터페이스를 구현한 구체적인 커맨드 클래스로, 실제 요청을 수행하는 코드가 들어 있다. 3. 호출자(Invoker): 커맨드 객체를 호출하는 객체이다. 이 객체는 클라이언트의 요청을 처리하기 위해 커맨드 객체를 호출한다. 4. 수신자(Receiver): ..

SOFTWARE DESIGN PATTERN

[SOFTWARE DESIGN PATTERN] 05 싱글턴 패턴(Singleton Pattern)

싱글턴 패턴(Singleton Pattern)이란? 싱글턴 패턴은 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다. 싱글턴 패턴의 특징 1. 단일 인스턴스: 싱글턴 패턴은 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장한다. 이 인스턴스는 어플리케이션 내에서 전역적으로 접근 가능하며, 여러 곳에서 동시에 사용될 수 있다. 2. 전역 접근 지점: 싱글턴 클래스의 인스턴스는 어디서든지 접근 가능한 전역 변수처럼 사용됩니다. 이를 통해 어플리케이션 전체에서 동일한 상태를 공유하거나 특정 기능을 사용할 수 있다. 3. 지연된 초기화 (Lazy Initialization): 인스턴스가 처음으로 요청될 때까지는 생성되지 않고, 필요한 순간에 생성된다. 이를 통해 초기화에 필요한 자원을 ..

SOFTWARE DESIGN PATTERN

[SOFTWARE DESIGN PATTERN] 04 팩토리 패턴(Factory Pattern)

팩토리 패턴(Factory Pattern)이란? 팩토리 패턴은 객체를 생성하는 과정을 캡슐화하고, 이를 통해 클라이언트가 생성되는 객체의 타입을 지정하지 않고도 객체를 얻을 수 있게 한다. 또한, 객체의 생성과 관련된 복잡한 로직이나 클래스를 숨기고, 객체 생성을 담당하는 팩토리 클래스를 도입하여 시스템을 더 유연하게 만든다. 팩토리 패턴의 세가지 타입 1. 간단한(또는 정적) 팩토리 메서드 패턴(Simple or Static Factory Method Pattern): 하나의 팩토리 메서드가 객체를 생성하는 패턴이다. 이는 일반적으로 인터페이스나 추상 클래스를 통해 여러 하위 클래스들이 구현될 수 있다. 2. 팩토리 메서드 패턴(Factory Method Pattern): 여러 객체를 생성하는 팩토리를..

SOFTWARE DESIGN PATTERN

[SOFTWARE DESIGN PATTERN] 03 데코레이터 패턴(Decorator Pattern)

데코레이터 패턴(Decorator Pattern)이란? 기존의 객체에 새로운 기능을 동적으로 추가할 수 있도록 하는 패턴입니다. 이 패턴은 상속보다 유연한 구조를 제공하며, 객체의 변경 없이 새로운 기능을 추가할 수 있게 한다. 데코레이터 패턴의 핵심 구성요소 1. 컴포넌트(Component): 실제로 기능을 추가하고자 하는 객체를 나타낸다. 데코레이터 패턴에서는 인터페이스나 추상 클래스로 정의된다. 2. 컨크리트 컴포넌트(Concrete Component): Component를 구현한 구체적인 클래스로, 실제로 추가 기능이 필요한 객체이다. 3. 데코레이터(Decorator): 실제로 새로운 기능을 추가하는 역할을 한다. 이는 Component를 상속하며, 내부에 다른 Component를 포함한다. ..

SOFTWARE DESIGN PATTERN

[SOFTWARE DESIGN PATTERN] 02 옵저버 패턴(Observer Pattern)

옵저버 패턴(Observer Pattern)이란? 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체에게 연락이 가고 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의한다. 옵저버 패턴의 핵심 구성요소 1. 주체(Subject): 상태가 변하는 객체를 나타낸다. 이 객체는 옵저버들을 등록하고, 상태가 변경되었을 때 등록된 옵저버들에게 알림을 보낸다. 2. 옵저버(Observer): 주체의 상태 변화를 감지하고 이에 대응하는 동작을 수행하는 인터페이스를 정의한다. 일반적으로 update 메서드가 이 역할을 한다. 3. 구체적인 옵저버(Concrete Observer): 옵저버 인터페이스를 구현한 구체적인 클래스들로, 주체의 상태가 변경되었을 때 수행할 동작을 정의한다. 옵저..

SOFTWARE DESIGN PATTERN

[SOFTWARE DESIGN PATTERN] 01 전략 패턴(Strategy Pattern)

전략 패턴(Strategy Pattern)이란? 전략 패턴은 알고리즘을 정의하고 각각을 캡슐화하여 교환 가능하도록 만드는 패턴이다. 이 패턴은 동일한 문제를 해결하기 위해 여러 알고리즘이 필요하거나, 알고리즘의 변경이 필요한 경우에 유용하게 사용된다. 전략 패턴의 핵심 아이디어는 알고리즘을 클라이언트로부터 독립적으로 정의하고, 클라이언트가 사용할 전략을 동적으로 교체할 수 있도록 하는 것이다. 전략 패턴의 주요 구성 요소 1. 전략(Strategy): 알고리즘을 나타내는 인터페이스 또는 추상 클래스이다. 이 인터페이스를 구현하는 여러 전략들이 있다. 2. 구체적인 전략(Concrete Strategy): 전략을 실제로 구현한 클래스로, 알고리즘의 구체적인 내용을 담고 있다. 3. 컨텍스트(Context)..

clm_bonny
'SOFTWARE DESIGN PATTERN' 카테고리의 글 목록