728x90
생성자
필요한 형태의 객체에 따라 생성자 만들어서 사용 가능, 객체는 아래 3가지 방법으로 생성할 수 있다.
- @NoArgsConstructor + + @Setter
- Custom Constructor
- @AllArgsConstructor
1. @NoArgsConstructor + @Setter
먼저 빈 객체를 생성한 뒤, 필요에 따라 원하는 필드값을 주입하는 방식
2. Custom Constructor
1. 필요한 필드값만 주입 받는 생성자
2. DTO (데이터 전달용 객체)를 통한 생성자
3. @AllArgsConstructor
💡생성자는 어떻게 만드는 것이 좋은가?
필드값을 어느 시점에 세팅할것인가의 기준으로 분리
- 메서드 실행 시 필요한 값드의 설정을 객체를 생성하는 시점에 모두 설정하도록 강제하는 목적
⭐️ 객체 불변성(Immutability) 과 완전성(Completeness)의 관점에서의 객체 초기화에 대해
- 불변성(Immutability): 한번 초기화된 필드값은 이후로 변경되지 않는다.
- 완전성(Completeness): 생성자는 객체를 초기화, 즉 객체가 완전한 상태가 되도록하는 것이다.
이 둘을 조합하면 객체는 한번의 생성자 호출로모든 메서드를 수행할 수 있는 완전, 불변의 상태가 된다.
- 이를 위한 문법은 `final`과 `constructor`(`@RequiredArgsConstructor`)이다.
- `final`: 한번 값이 설정되면 그 이후로 절대 바뀌지 않는 / 바뀔 수 없는 값
- `@RequiredArgsConstructor`: 초기화가 필수적인 필드에 대한 생성자
728x90
'ASAC 웹 풀스택 > Spring Boot' 카테고리의 다른 글
Java 기본 문법 및 JVM 구성(10) - final, static (0) | 2024.09.29 |
---|---|
Java 기본 문법 및 JVM 구성(9) - DTO, VO (0) | 2024.09.28 |
Java 기본 문법 및 JVM 구성(8) - 정적 팩토리 메서드 (1) | 2024.09.28 |
Java 기본 문법 및 JVM 구성(7) - Builder: 객체 생성의, 모든 경우의 수를 지원 (0) | 2024.09.28 |
Java 기본 문법 및 JVM 구성(5) - Java의 객체지향 프로그래밍 패러다임 문법 (0) | 2024.09.28 |