프로그램 아키텍쳐/디자인패턴

빌더(Builder) 패턴

본클라쓰 2009. 10. 29. 11:22

 

빌더 패턴은 추상팩토리와 팩토리 메소드를 혼합시킨 방법으로 팩토리가 데이터 가공, 추상 팩토리는 데이터를 추상화 시킨 것이며 이 둘을 합친 것이 빌더 패턴이다.

 

팩토리 메소드 패턴은 아래 처럼 인자를 통한 객체 생성을 정의한다면,

 

Factory factory = new Factory("한국");


추상 팩토리 패턴은 객체를 통한 데이터를 추상화 시킨 것 이다.

 

Factory factory = new Factory( new 한국() );


이 둘을 합친 것이 빌더 패턴이다.

 

Builder builder = new Builder( new 한국(), 한국 );


 

아래 그림은 FileBuilder 클래스가 이루어진 클래스 계층도이다. (옆에 그림에서 File이라고 적은 것은 오타임. 최상위 추상 클래스의 이름은 FileBuilder 이다. )

 





















 

위에 클래스에 엑셀 파일을 처리하는 코드는 아래와 같다.

public class 엑셀파일 {


    public 엑셀파일() {}


    public void 파일생성(파일명) {

        파일명 생성 처리 코드

    }


    public void 파일저장(파일내용) {

        파일 저장 처리 코드

    }

}



이제 빌더 클래스 코드를 보겠다.

public class Director {


    private FileBuilder builder;    // 미리 구현한 파일클래스

    private 파일명 파일명;


    public Director(FileBuilder builder, String 파일명) {

        this.builder = builder;

        this.파일명 = 파일명;

    }


    public void process(파일내용) {

        file.파일생성(파일명);

        file.파일저장(파일내용);

    }

}



실제 빌더 패턴을 사용한 코드

public class Use {


    public use() {

       Director director = new Director ( new 엑셀파일(), 파일명 );

       director.precess(파일내용);

    }


}