[java] 빌더 패턴

LatteJava·2024년 4월 16일
public class UserDTO {
    private String username;
    private String email;
    private int age;

    private UserDTO(String username, String email, int age) {
        this.username = username;
        this.email = email;
        this.age = age;
    }

    public static UserDTO create(String username, String email, int age) {
        return new UserDTO(username, email, age);
    }

    public static UserDTOBuilder builder() {
        return new UserDTOBuilder();
    }

    
	// 내부 정적 클래스
    public static class UserDTOBuilder {
        private String username;
        private String email;
        private int age;

        private UserDTOBuilder() {}

        public UserDTOBuilder username(String username) {
            this.username = username;
            return this;
        }

        public UserDTOBuilder email(String email) {
            this.email = email;
            return this;
        }

        public UserDTOBuilder age(int age) {
            this.age = age;
            return this;
        }

        public UserDTO build() {
            return new UserDTO(username, email, age);
        }
    }
}
...
// 빌더 패턴 사용 예시
UserDTO user = UserDTO.builder()
                        .username("JohnDoe")
                        .email("johndoe@example.com")
                        .age(30)
                        .build();
profile
devlog

0개의 댓글