Deep Dive Into Design Patterns - 브리지 패턴

    💡 브리지 패턴이란? 큰 클래스 또는 밀접하게 관련된 클래스들의 집합을 두 개의 개별 계층구조(추상화 및 구현)로 나눈 후 각각 독립적으로 개발할 수 있도록 하는 구조 디자인 패턴입니다. 💡 문제? Circle(원) 및 Square(직사각형)라는 한 쌍의 자식 클래스들이 있는 기하학적 Shape(모양) 클래스가 있다고 가정해 봅시다. 이 클래스 계층 구조를 확장하여 색상을 도입하기 위해 Red(빨간색) 및 Blue(파란색) 모양들의 자식 클래스들을 만들 계획입니다. 그러나 이미 두 개의 자식 클래스가 있으므로 Blue­Circle(파란색 원) 및 Red­Square(빨간색 직사각형)와 같은 네 가지의 클래스 조합을 만들어야 합니다. 새로운 모양 유형들과 색상 유형들을 추가할 때마다 계층 구조는 기하급수적..

    Deep Dive Into Design Patterns - 컴포지트 패턴

    💡 컴포지트(복합체) 패턴이란? 객체들을 트리 구조들로 구성한 후, 이러한 구조들을 개별 객체들처럼 작업할 수 있도록 하는 구조 패턴입니다. 즉, 복합 객체(Composite)와 단일 객체(Leaf)를 동일한 컴포넌트로 취급하여 클라이언트가 무엇이 복합 객체이고 무엇이 단일 객체인지 구분하지 않고도 사용할 수 있게끔 하는 패턴입니다. 💡 클래스 다이어그램으로 본 컴포지트 패턴 Component(인터페이스) : Leaf와 Compsite 를 묶는 공통적인 상위 인터페이스 Composite : 복합 객체로서, Component 구현체들을 내부 리스트로 관리 Leaf : 단일 객체로서, 하위 요소가 없다. Client : Component Interface를 통해 단일/복합 객체를 하나의 객체로 다룬다. 복합..

    Deep Dive Into Design Patterns - 퍼사드 패턴

    💡 퍼사드 패턴이란? 라이브러리에 대한, 프레임워크에 대한, 또는 다른 클래스들의 복잡한 집합에 대한 단순화된 인터페이스를 제공하는 구조적 디자인 패턴입니다. 라이브러리의 각 클래스와 메서드들이 어떤 목적의 동작인지 이해하기 어려워 바로 가져다 쓰기에는 난이도가 높을 때, 이에 대한 적절한 네이밍과 정리를 통해 사용자로 하여금 쉽게 라이브러리를 다룰 수 있도록 인터페이스를 만드는 데 사용합니다. ⭐ 퍼사드는 움직이는 부분이 많이 포함된 복잡한 하위 시스템에 대한 간단한 인터페이스를 제공하는 클래스입니다. 💡 클래스 다이어그램으로 본 퍼사드 패턴 퍼사드 패턴을 사용하면 하위 시스템 기능들의 특정 부분에 편리하게 접근할 수 있습니다. 또한, 퍼사드는 클라이언트의 요청을 어디로 보내야 하는지와 움직이는 모든 ..

    Deep Dive Into Design Patterns - 어댑터 패턴

    💡 어댑터 패턴이란? 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 하는 구조적 디자인 패턴입니다. 📌 문제 상황 주식 시장 모니터링 앱을 만들고 있고, 이 앱은 여러 소스에서 주식 데이터를 XML 형식으로 다운로드한 후 사용자에게 보기 좋은 차트들과 다이어그램들을 표시한다고 상상해 봅시다. 어느 시점에 당신은 타사의 스마트 분석 라이브러리를 통합하여 당신의 앱을 개선하기로 결정했습니다. 그런데 이 분석 라이브러리는 JSON 형식의 데이터로만 작동합니다. 즉, 앱과 라이브러리가 호환되지 않는 상황입니다. 이 라이브러리를 XML과 작동하도록 변경할 수 있으나, 그러면 라이브러리에 의존하는 일부 기존 코드가 손상될 수 있습니다. 또 처음부터 타사의 라이브러리 소스 코드에 접근하는 것이 불가능하여..

    Deep Dive Into Design Patterns - 디자인 패턴의 개요

    💡 패턴 자세히 알아보기📌 생성 패턴 Deep Dive Into Design Patterns - 싱글톤 패턴💡 싱글톤(Singleton) 패턴이란? 클래스에 인스턴스가 하나만 있도록 하면서 이 인스턴스에 대한 전역 접근(액세스) 지점을 제공하는 생성 디자인 패턴입니다. 쉽게 말해, 단 하나의 유일한 객체를easyhomputer.tistory.com 📌 구조 패턴 Deep Dive Into Design Patterns - 어댑터 패턴💡 어댑터 패턴이란? 호환되지 않는 인터페이스를 가진 객체들이 협업할 수 있도록 하는 구조적 디자인 패턴입니다. 📌 문제 상황 주식 시장 모니터링 앱을 만들고 있고, 이 앱은 여러 소스에easyhomputer.tistory.com Deep Dive Into Desig..