책정리/GoF 디자인 패턴 24

4장 부분 부분 생성을 통한 전체 객체 생성 문제 : BUILDER 패턴(Builder 패턴)

때때로 클래스의 생성자를 불러서 객체를 생성하는 것이 아니라 객체를 구성하는 부분부분을 따로 생성하고 이를 조합해서 전체 객체를 생성해주는 것이 보다 효과적일 때가 있다. 한꺼번에 객체를 생성하는 것이 불가능하거나, 가능하더라도 부분 부분 생성한 후 전체 객체로 조합하는 것이 훨씬 비용이 적게 들 경우가 이에 해당한다. 문제 사례 설명 자동 번역 소프트웨어를 개발해서 매뉴얼을 제작하기로 결정함. 이 때 개발해야 할 소프트웨어는 한국어로 된 매뉴얼을 입력하면 영어, 일본어, 프랑스어로 된 매뉴얼을 만들어내는 것을 목적으로 한다. 여기서 매뉴얼에 사용되는 문장은 평서문, 의문문, 명령문으로만 구성되어 있으며, 자동 번역 소프트웨어는 매뉴얼을 문장 단위로 번역하게 된다. 다양한 접근 방법 및 BUILDER 패..

3장 제품군별 객체 생성 문제 : ABSTRACT FACTORY 패턴

제품군(Product Family) 제품 여러 개가 있고, 각 제품들은 또 다시 여러 종류로 나뉠 때 같은 종류의 제품들을 모아 놓은 것 다양한 접근 방법 및 Abstract Factory 패턴 문제를 요약하면, 어떻게 하면 같은 제품군에 속한 제품들의 객체만을 생성해서 사용하도록 명확히 보장받을 수 있는 가 하는 것 기본적인 방법 : 조건 비교 방식 if ( HP == 0 ) { //< HP용 객체 생성 } else if ( SUN == 0 ) { //< SUN 용 객체 생성 } else { //< 지원하지 않는 시스템 환경 } 프로그램 곳곳에 조건 비교 문장이 존재하게 됨 새로운 조건을 추가할 일이 발생하면 프로그램 전체를 찾아서 일일이 수정해야 함 좀 더 나은 방법 : 객체 생성 전담 클래스 활용 ..

PART 1. 소프트웨어 개발과 디자인 패턴

CHAPTER 1. 소프트웨어 개발과 WHAT-WHY-HOW 생각 모델 소프트웨어 개발 원하는 목적(Goal)을 달성하기 위해 기준이 되는 개념이나 철학(Paradigm)을 바탕으로 특정한 과정(Process)을 거쳐 소프트웨어적인 해결책(Solution)을 만들어내는 것 소프트웨어 개발 개념 또는 철학 크게 구조적(Structured), 객체지향적(Object Oriented)으로 나뉨 비교항목 구조적 (Structured) 객체지향적 (Object Oriented) 주요 관점 기능(Function 또는 Process) 위주 데이터(Data) 위주 접근 방법 하향식 (Top Down) 분할 정복 (Divide and Qonquer) 상향식 (Bottom Up) 상호 관계 정의 산출물 구조 트리(Tree..

목차

PART 1. 소프트웨어 개발과 디자인 패턴 CHAPTER 1. 소프트웨어 개발과 WHAT-WHY-HOW 생각 모델 소프트웨어 개발 기준 개념 또는 철학 소프트웨어 개발 과정 최적의 해결책 WHAT-WHY-HOW 생각 모델 CHAPTER 2. 소프트웨어 설계 및 디자인 패턴 소프트웨어 설계 좋은 소프트웨어 설계의 특성 좋은 소프트웨어를 설계하기 위한 도구 디자인 패턴의 정의 및 유용성 디자인 패턴 이해와 활용을 위한 이 책의 접근 방법 PART 2. 객체 생성을 위한 디자인 패턴 CHAPTER 3. 제품군별 객체 생성 문제 : ABSTRACT FACTORY 패턴 문제 사례 설명 다양한 접근 방법 및 ABSTRACT FACTORY 패턴 기본적인 방법: 조건 비교 방식 좀더 나은 방법: 객체 생성 전담 클래..