Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 알고리즘
- 15552
- java
- 11053
- 11054
- SpringTokenizer
- Java #백준 #코딩테스트
- 파이썬
- kakaocloud
- Java #코딩테스트
- 백준
- sequelize
- Spring #Spring Boot #Java
- 코딩테스트
- Spring
- Java #오븐시계 #백준
- 24479
- kakaocloudschool
- 카카오 클라우드 스쿨
- Spring #Java #Spring Boot
- boj
- 7568
- 카카오클라우드스쿨
- Spring #Java #Spring Boot #싱글톤
- python
- 9020
- Spring #Java #Spring Boot #@BeforeEach #@AfterEach
- 1110
- 2447
- node
Archives
- Today
- Total
YoungSoo
[Design Pattern] Builder Pattern 본문
Spring Boot로 프로젝트를 진행하며 @Builder 어노테이션을 사용하는 것을 자주 봤습니다.
@Builder에 대해 학습하며 빌더 패턴에 대한 내용을 학습해야겠다고 느껴 기록을 남깁니다.
빌더 패턴은 객체 생성 과정을 단순화하기 위한 디자인 패턴 중 하나입니다.
일반적으로 객체 생성에는 많은 인자를 전달하는 생성자 메서드를 사용합니다. 이러한 방식은 인자의 개수가 많아질수록 코드를 이해하기 어려워지고, 실수하기 쉬워집니다. 또한 생성자 메서드가 인자의 순서나 개수를 바꿔도 컴파일러에서는 이를 체크해주지 않아서 버그를 발생시키기도 합니다.
빌더 패턴은 이러한 문제를 해결하기 위해 인자가 많은 객체를 생성하는 클래스를 빌더 클래스로 분리하여, 객체를 생성하기 위해 필요한 여러 단계를 거치면서 객체를 생성하는 방식입니다. 이렇게 하면 각 단계의 이름을 분명하게 지정할 수 있으므로 코드의 가독성과 유지보수성이 높아지고, 또한 각 단계별로 값을 설정할 때 어떤 인자가 필요한지 명확하게 알 수 있습니다.
즉, 빌더 패턴은 객체의 생성 과정과 표현 방식을 분리하여, 사용자가 간편하게 객체를 생성할 수 있도록 도와주는 디자인 패턴입니다.
@Getter
@NoArgsConstructor
public class User {
private Long id;
private String username;
private String password;
@Builder
public User(Long id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
}
-----------------------------------------------------------------
// 예제
User user = User.builder()
.id(1L)
.username("user1")
.password("password1")
.build();
'CS > Design Pattern' 카테고리의 다른 글
[Design Pattern] Singleton Pattern (0) | 2023.03.30 |
---|---|
[Design Pattern] 디자인 패턴? (0) | 2023.03.30 |
[Design Pattern] SOLID 원칙 (0) | 2023.03.29 |