Computer Science/디자인패턴

Builder 패턴

Beomsu Koh 2023. 7. 5.

Builder 패턴

Builder 패턴은 객체 생성에 관련된 디자인 패턴으로, 객체를 생성하는 방법과 표현하는 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 합니다.

DTO에 Builder를 사용하는 주요 이유는 다음과 같습니다:

1. 가독성 향상

객체 생성시에 원하는 매개변수를 선택적으로 입력하고 가독성 좋은 코드를 작성할 수 있습니다.
생성자에 많은 수의 매개변수가 있는 경우, 어떤 값이 어떤 변수에 할당되는지 이해하기 어렵습니다.

반면, Builder 패턴을 사용하면 각 변수에 어떤 값이 설정되는지 명확하게 파악할 수 있습니다.

// Without Builder
Product product = new Product(1, "Book", 1500, "Good book", "Author", "Publisher");

// With Builder
Product product = Product.builder()
                         .id(1)
                         .name("Book")
                         .price(1500)
                         .description("Good book")
                         .author("Author")
                         .publisher("Publisher")
                         .build();

2. 객체 불변성 유지

Builder 패턴을 사용하면 객체의 불변성을 유지할 수 있습니다.
객체가 한번 생성된 후에는 그 상태가 변경되지 않도록 할 수 있습니다. 이
는 멀티스레드 환경에서 객체의 안정성을 보장하는데 중요한 요소입니다.

3. 매개변수의 선택적 사용

모든 필드를 필수로 만드는 대신, 선택적인 필드를 가질 수 있습니다.
이는 특히 많은 수의 필드가 있는 객체를 다룰 때 유용합니다.
선택적인 필드를 가진 객체를 생성하는데는 Builder 패턴이 가장 적합합니다.

부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>

'Computer Science > 디자인패턴' 카테고리의 다른 글

Service  (0) 2023.07.12
Repository  (0) 2023.07.12
생성자 VS 빌더 패턴  (0) 2023.07.05
단일 책임 원칙(Single Responsibility Principle, SRP)  (0) 2023.05.18
데코레이터 패턴(Decorator Pattern)  (0) 2023.05.03

댓글