Design Pattern 6

Design Pattern | 브리지 패턴(Bridge Pattern)

브리지 패턴(Bridge Pattern)은 GoF 디자인 패턴 중 하나로, 기능과 구현을 분리하게 독립적으로 확장할 수 있도록 돕는 구조적 디자인 패턴입니다. 이 패턴은 객체지향 설계에서 클래스 폭발 문제를 해결하기 위해 사용되며, 두 개 이상의 독립적인 자원을 클래스 계층 구조로 분리해 각각의 계층을 따로 개발하고 확장할 수 있게 합니다.  1. 브리지 패턴의 정의와 의도브리지 패턴은 두 계층(추상화와 구현)을 연결하는 다리와 같습니다. 즉, 클라이언트는 상위 계층인 추상화와 작업하고, 추상화는 하위 계층인 구현에 작업을 위임합니다. 이 패턴의 목적은 하위 계층(구현부)과 상위 계층(추상화)을 분리하여 독립적인 확장을 가능하게 만드는 것입니다. 2. 브리지 패턴을 사용하는 의도이 패턴을 사용함으로써 기..

Design Pattern 2024.08.29

Design Pattern | 빌더 패턴(Builder Pattern)

빌더 패턴이란?빌더 패턴(Builder Pattern)은 객체 생성을 단순화하고 유연성을 높이기 위한 디자인 패턴입니다. 복잡한 객체의 생성 과정을 추상화하고 객체의 구성 요소를 조립하여 객체를 생성하는 데 사용됩니다. 빌더 패턴 예시 코드 // Person 클래스: 생성할 객체의 일부인 간단한 사람 클래스public class Person { private String firstName; private String lastName; private int age; private String address; // 생성자는 private으로 설정하고, 빌더를 통해서만 객체를 생성할 수 있도록 합니다. private Person(Builder builder) { t..

Design Pattern 2024.04.26

Design Pattern | 전략 패턴(Strategy Pattern)

오늘은 디자인 패턴 스터디 4번째 항목인 전략패턴에 대하여 알아보겠습니다. 전략 패턴(Strategy Pattern) 전략 패턴은 객체지향 소프트웨어 디자인에서 사용되는 디자인 패턴 중 하나입니다. 이 패턴은 알고리즘군을 정의하고 각각을 캡슐화하여 실행(런타임) 중에 알고리즘을 선택하여 객체의 동작을 변경할 수 있도록 해줍니다. 이는 프로그램의 유연성과 확장성을 높일 수 있습니다. 전략 패턴의 주요 요소 전략(Strategy) 전략은 알고리즘을 나타내며, 인터페이스를 통해 정의됩니다. 각각의 전략은 특정한 알고리즘을 실행하는 메서드를 포함합니다. 컨텍스트(Context) 컨텍스트는 전략을 사용하는 클라이언트 객체입니다. 컨텍스트는 전략 객체를 갖고있으며, 실행 중에 전략을 교체할 수 있습니다. 전략 패턴..

Design Pattern 2024.04.01

Design Pattern | 데코레이터 패턴(Decorator Pattern)

오늘은 디자인 패턴 스터디 3번째 항목인 데코레이터 패턴에 대하여 알아보겠습니다! 데코레이터 패턴(Decorator Pattern) 객체 지향 디자인 패턴 중 하나로, 객체에 동적으로 새로운 기능을 추가할 수 있도록 하는 패턴입니다. 이 패턴은 기본 객체를 변경하지 않고, 기능을 추가하거나 수정할 수 있도록 합니다. 데코레이터 패턴은 개방-폐쇄 원칙(Open-Closed Principle)에 따르며, 코드 변경 없이 기능 확장할 수 있도록 도와줍니다. 데코레이터 패턴 예제 코드와 주요 구성 요소 Component // Component interface interface Coffee { String getDescription(); double getCost(); } 데코레이터 패턴에서 기본이 되는 인터페..

Design Pattern 2024.03.22

Design Pattern | 컴포지트 패턴(Composite Pattern)

오늘은 디자인 패턴 스터디 두번째 항목인 컴포지트 패턴에 대해 알아보도록 하겠습니다. 컴포지트 패턴(Composite Pattern) 객체 지향 디자인 패턴 중 하나로, 복합 객체를 구성하는 개별적인 객체들을 모두 동일한 방법으로 다룰 수 있게 하는 패턴입니다. 이 패턴은 개별 객체와 복합 객체(그룹화된 객체)를 동일하게 다룰 수 있도록 하여 클라이언트 코드가 객체 계층 구조를 일관되게 처리할 수 있도록 도와줍니다. 컴포지트 패턴은 트리 구조를 가진 객체들을 다루는데 유용합니다. 간단한 예시로, 파일 시스템을 생각해볼 수 있습니다. 파일 시스템에서 디렉터리와 파일을 구성하는 것과 같이, 여러개의 객체가 포함된 복합 객체를 처리할 때 이용할 수 있습니다. 이러한 패턴을 사용하는 이유는, 코드가 많으면, 코..

Design Pattern 2024.02.22

Design Pattern | 추상 팩토리 패턴(Abstract Factory Pattern)

오늘은 디자인 패턴 스터디 첫번째 항목인 추상 팩토리 패턴에 대해 알아보도록 하겠습니다. 먼저, 디자인 패턴이란? 디자인 패턴이란, 프로그램을 개발하는 과정에서 빈번하게 발생하는 디자인 문제를 정리하여 상황에 따라 간편하게 적용할 수 있게 정리한 것입니다. 디자인 패턴을 공부하게되면, 가장 효과적이라고 알려진 방법들을 패턴화시켜, 단지 코드를 '재사용'하는 것이 아닌, 유지보수나 문서화를 개선, 클래스의 정확한 명세, 객체 간의 상호작용 또는 설계의 의도까지 명확하게 정의할 수 있습니다. 추상 팩토리 패턴(Abstract Factory Pattern) 추상 팩토리 패턴은 생성 패턴(Creational Pattern) 중 하나입니다. 생성 패턴은 인스턴스를 만드는 절차를 추상화 하는 패턴입니다. 생성 패턴..

Design Pattern 2024.01.30