[빈-4] 빌더(builder)

seratpfk·2022년 8월 3일
0

JAVA

목록 보기
77/96

User 클래스

public class User {
	// 필드(Builder 객체가 가진 값을 받아 옴)
	private int userNo;
	private String id;
	private String email;
	// Builder 클래스의 build() 메소드가 호출하는 생성자
	public User(Builder builder) {
		this.userNo = builder.userNo;
		this.id = builder.id;
		this.email = builder.email;
	}
	// Builder 반환 메소드
	public static Builder builder() {
		return new Builder();
	}
	// User 클래스 내부에 Builder 클래스 생성
	// User 클래스를 이용해서 호출하기 위해 static 처리
	public static class Builder {
		// 내부 필드(여기에 값을 전달 받아서 User의 필드로 보내는 원리)
		private int userNo;
		private String id;
		private String email;
		// userNo() 메소드
		public Builder userNo(int userNo) {
			this.userNo = userNo;
			return this;
		}
		// id() 메소드
		public Builder id(String id) {
			this.id = id;
			return this;
		}
		// email() 메소드
		public Builder email(String email) {
			this.email = email;
			return this;
		}
		//build() 메소드
		public User build() {
			return new User(this);  // this는 Builder 객체(userNo, id, email을 가지고 있는 객체)를 의미함
		}
} // class Builder
	@Override
	public String toString() {
		return "User [userNo=" + userNo + ", id=" + id + ", email=" + email + "]";
	}
}

출력:
ex03_singleton.User@26f0a63f
ex03_singleton.User@26f0a63f

0개의 댓글