봄수의 연구실

Builder 패턴 본문

Computer Science/디자인패턴

Builder 패턴

berom 2023. 7. 5. 11:43

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 패턴이 가장 적합합니다.

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

728x90

'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