빌더 패턴(Builder Pattern)

INSANEZINDOL·2022년 3월 2일
0

Design Pattern

목록 보기
7/10
post-thumbnail

개요

도시에 빌딩(building) 을 짓는 것을 build 라 합니다. 빌딩을 짓는 순서는 우선 지반을 다지고 골격을 세우고, 아래에서 위로 조금씩 만들어 갑니다. 이처럼 복잡한 구조물을 한 번에 완성시키는 것은 어렵기 때문에 전체를 구성하는 각 부분을 만들면서 단계를 밟아가며 만들어 나갑니다.
Builder 패턴 또한 이처럼 구조를 가진 인스턴스를 쌓아 올리는 방식의 패턴입니다.

참고

누가 무엇을 알고 있을까?

⇒ OOP에서 "누가 무엇을 알고 있을까?" 라는 주제는 매우 중요한 주제입니다. 즉, 어떤 클래스가 어떤 메소드를 사용할 수 있을까? 에 주의해서 프로그래밍을 할 필요가 있습니다.

위에서 작성한 예제를 기준으로 설명하자면 우선 Main 클래스는 Builder 클래스의 메소드를 모르고 호출하지도 않습니다.
단지, Director 클래스의 constructor() 메소드만을 호출합니다. 그럼 Director 클래스 안에서 로직이 수행되고 문서가 완성됩니다.
한편, Director 클래스는 Builder 클래스를 알고 있고 Builder 클래스의 메소드를 사용해서 문서를 구축하지만, 자신이 실제로 이용하는 클래스가 TextBuilder 인지, HTMLBuilder 인지 또는 다른 Builder의 하위클래스인지 모릅니다.
이처럼 Director 클래스가 자신이 이용하고 있는 Builder 클래스의 하위 클래스를 모르기 때문에 교체가 가능합니다. 내부에서 Builder가 아닌 TextBuilder나 HTMLBuilder를 사용하게 될 경우 강결합하게 되어 다른 인스턴스로 교체를 할 수 없게 됩니다.
이처럼 항상 결합도를 낮춰서 교환가능성을 높힐수 있도록 설계를 할 필요가 있습니다.

profile
Java Backend Developer

0개의 댓글