이 글은 이야기's G님의 자바 디자인 패턴 이해를 참조하였습니다.

Builder 패턴

  • 복잡한 단계를 거쳐야 되는 객체의 구현(Computer)을 서브클래스 (Builder)에게 넘기는 패턴
  • 많은 변수를 가진 객체 생성을 가독성 높은 코드로 코딩

컴퓨터(computer)를 조립하기 위해 빈 컴퓨터 본체(Builder)를 준비하고 본체 뚜껑을 연 후(.start) 원하는 CPU(.setCPU)와 RAM(.setRAM)을 골라 뚜껑을 닫고(.build) 완성시키는 형태

스크린샷 2019-09-05 오후 2.49.24.png

Main

Computer computer = Builder
            .start()
            .setCPU("i7")
            .setRAM("8g")
            .build()

Builder

public class Builder 
{
    private Computer computer;

    public Builder() 
    {
        computer = new Computer("default", "default", "default");
    }

    public static Builder start() 
    {
        return new Builder()
    }

    public Builder setCPU(String cpu) 
    {
        computer.setCPU(cpu)
        return this;
    }

    public Builder setRAM(String ram) 
    {
        computer.setRAM(ram)
        return this;
    }

    public Computer build() {
        return this.computer
    }
}

요약

이름 내용 함수
computer 최종적으로 얻을 객체 미리 생성 Computer computer
Builder() 객체 변수 초기화 = Builder
start() 초기화한 인스턴스 가져오기 .start()
setCPU() 원하는 cpu값 가져오기 .setCPU()
build() 최종적으로 얻을 객체 가져오기 build()