반응형

디자인패턴 6

Stractegy Pattern - 전략 패턴

Stractegy Pattern - 전략 패턴전략 패턴이란?전략 패턴(Strategy Pattern)은 행위 디자인 패턴(Behavioral Design Pattern) 중 하나로, 알고리즘 군을 정의하고 각각을 캡슐화하여 상호 교환 가능하게 만드는 패턴입니다. 이를 통해 클라이언트는 알고리즘을 독립적으로 변경할 수 있으며, 코드의 유연성과 확장성을 높일 수 있습니다. 여기서 '전략'이란 일종의 알고리즘이 될 수 도 있으며, 기능이나 동작이 될 수도 있는 특정한 목표를 수행하기 위한 행동 계획을 말합니다.즉, 어떤 일을 수행하는 알고리즘이 여러가지 일때, 동작들을 미리 전략으로 정의함으로써 손쉽게 전략을 교체할 수 있는, 알고리즘 변형이 빈번하게 필요한 경우에 적합한 패턴입니다.전략 패턴의 개념Strat..

디자인패턴 2024.12.28

Factory Method Pattern - 팩토리 메서드 패턴

Factory Method Pattern - 팩토리 메서드 패턴Factory Method란?팩토리 메서드 패턴(Factory Method Pattern)은 객체 생성의 책임을 서브클래스에 위임하여, 클라이언트 코드가 구체적인 클래스에 의존하지 않고 객체를 생성할 수 있도록 하는 생성 패턴(Creational Pattern) 중 하나입니다. 클라이언트에서 직접 new 연산자를 통해 제품 객체를 생성하는 것이 아닌, 제품 객체들을 도맡아 생성하는 공장 클래스를 만들고, 이를 상속하는 서브 공장 클래스의 메서드에서 여러가지 제품 객체 생성을 각각 책임 지게합니다. 또한 객체 생성에 필요한 과정을 템플릿 처럼 미리 구성해놓고, 객체 생성에 관한 전처리나 후처리를 통해 생성 과정을 다양하게 처리하여 객체를 유연하..

디자인패턴 2024.12.28

State Pattern(상태 패턴)

State Pattern소프트웨어 디자인 패턴중 하나로 State Pattern(상태 패턴) 은 객체의 상태에 따라 행동이 달라지는 경우에 사용되는 디자인 패턴입니다.이때 상태를 조건문으로 검사하여 행위를 달리 하는 것이 아닌 상태를 객체화 하여 상태가 행동할 수 있도록 위임합니다.객체 내부에 상태 객체를 저장하고, 상태 변경에 따라 행동 로직을 동적으로 변경할 수 있습니다. 상태를 클래스로 표현하면 클래스를 교체해서 ‘상태의 변화’를 표현할 수 있고, 객체 내부 상태 변경에 따라 객체의 행동을 상태에 특화된 행동들로 분리해 낼 수 있으며, 새로운 행동을 추가하더라도 다른 행동에 영향을 주지 않습니다.State Pattern 탄생 배경state 패턴이 등장한 배경은 객체의 상태에 따라 동작이 달라지는 경..

디자인패턴 2024.12.19

Abstract Factory Pattern(추상 팩토리)

Abstract Factory Pattern소프트웨어 디자인 패턴중 하나로, 객체 생성을 위한 디자인 패턴입니다.관련된 객체들의 팩토리를 묶어 추상화하는 역할을 합니다.팩토리 메서드 패턴의 확장된 형태이며, 상호 관련되거나 의존적인 객체군(제품군)을 생성할 때 유용합니다. 추상 팩토리는 인터페이스를 제공하고, 이 인터페이스를 구현하는 구체적인 팩토리가 제품군을 생성합니다.클라이언트는 구체적인 팩토리 클래스를 알 필요 없이 인터페이스를 통해 객체를 생성합니다.  팩토리 메서드 패턴과 추상 팩토리 패턴의 차이점과 확장된 점팩토리 메서드 패턴객체를 생성할 때 단일 제품에 대해 팩토리 메서드를 제공합니다.하나의 팩토리 메서드가 특정 제품의 객체를 생성합니다.추상 팩토리 패턴여러 제품군에 대한 객체를 생성할 수 ..

디자인패턴 2024.12.17

Builder Pattern(빌더 패턴)

Builder Pattern(빌더 패턴)Builder Pattern은 소프트웨어 디자인 패턴 중 하나로 객체 생성의 복잡성을 줄이고, 단계적으로 객체를 구성할 수 있도록 도와주는 생성 디자인 패턴입니다. 주로 생성자가 복잡하거나 다양한 설정이 필요한 객체를 생성할 때 사용합니다. 예를 들어 자동차를 만든다고 가정할때, 자동차를 주문할때 여러가지 옵션을 넣을수가 있습니다. 썬루프, 시트, 타이어 크기, 자동차 색상 등등을 구매자가 원하는대로 결졍됩니다. 어느 사람은 기본 옵션을 그대로 사용할 수 도 있고, 어떤 사람은 썬루푸, 시트만 변경할 수 도 있고, 어떤 사람은 모두 변경할 수 도 있습니다. 이처럼 선택적 옵션을 보다 유연하게 받아 다양한 타입의 인스턴스를 생성할 수 있어, 클래스의 선택적 매개변수가..

디자인패턴 2024.12.16

Adapter Pattern(어댑터 패턴)

Adapter Pattern소프트웨어 디자인 패턴 중 하나로, 기존의 클래스나 인터페이스를 변경하지 않고도 다른 인터페이스와 호환되도록 만드는 데 사용됩니다. 주로 서로 호환되지 않는 인터페이스를 연결하여 시스템 간 통합을 쉽게 만드는 데 활용됩니다.쉽게 설명하자면 Adapter Pattern은 중간 통역사라고 생각하면 편합니다. 예시로 이해해보기:A는 한국사람이고 영어를 못하고, B는 외국사람이고 영어만 가능합니다.이때 통역사가 필요한데, 통역사는 한국어를 영어로, 영어를 한국어로 바꿔서 전달해줍니다.결국, A(클라이언트)는 B와 원할하게 대화할 수 있게됩니다.A: Client (타겟 인터페이스를 원하는 사용자)B: Adaptee (타겟과 다른 인터페이스를 가지고 있는 클래스, 호환되지 않는 기존 객체..

디자인패턴 2024.12.11
반응형