컴퓨터 공부/디자인 패턴

[7월 13일 1교시] Builder 패턴 1

려리군 2009. 7. 13. 10:02

추천도서 : Head-First 디자인 패턴

※ 적어도 2~3개 같은 디자인 패턴을 함께 적용해야 한다.

※ 디자인 패턴의 목적 : 클래스 간의 dependency를 줄여준다. tightly couple -> loosely couple이 목적

 

hook function은 body가 비어있는 함수 -> 필요시 재정의 해 준다.

virtual function은 무조건 재정의 해주어야 한다.

※ 버거운 객체를 만들 때는 prototype 패턴을 사용

객체를 복제하기 때문에 메모리가 많이 소모되므로 서로 공유할 수 있게 하는 flyweight패턴을 이용. 

 

Builder

복잡한 인스턴스를 조립한다.

 

Intent

(생성)과정은 변하지 않는다.

공정, 부품(operation)만 변한다. -> 다른 표현을 만들 수 있게 한다.

다른 말로 Parser로 표현 가능.

 

Motivation

예시) Reader(director) 객체가 Converter(builder)에게 명령을 내리고 Converter는 알고리즘을 수행.

Director는 관리과정(틀), Builder 실제 결과물을 만들어 결과는 Main으로 반환

 

 

Builder만 바꿔주면 부품(concrete굳어진 class)이 변한다.

 

적용범위

조립 방법이 독립적일 때

 

사용하기 좋은 예시

reporting tool

부품 내부를 은닉하는 데 좋다.

 

Abstract Factory 패턴과 차이점

Builder는 객체의 단계별 생성에 중점을 준다. 생성한 제품을 반환.

Abstract Factory 패턴은 제품의 유사군을 생성해달라고 요청만 한다. 즉시 각 부품을 반환.