-
[자바/java] 클래스 생성자 패턴 3가지 (점층적, 빈즈, 빌더)개발/자바 2021. 10. 26. 14:38
1. 점층적 생성자 패턴
생성자의 매개변수의 유형과 개수를 다르게해 다양하게 호출할수 있게 하는 방식 (오버로딩)
- 매개변수에 따라서 많이 늘어나 가독성이 떨어짐.
public class Member { private String name; private int age; private String grade; public Member(String name){ this.name = name; } public Member(int age, String grade){ this.age = age; this.grade = grade; } public Member(String name, int age, String grade){ this.name = name; this.age = age; this.grade = grade; } }
2. 빈즈 패턴
setter를 사용. 가독성은 좋다.
하지만, 객체 일관성이 깨진다. 즉 생성 후 데이터가 변경될 수 있다는 소리
Member member = new Member(); member.setName("hha"); member.setAge(23);
3. 빌더 패턴
위에 두 단점을 보완한 패턴
코드도 길어지지 않고 어느 변수에 어느값이 들어가는지 가독성도 좋으며 필요한 값만 선택해서 넣을 수 있다.
@Builder public Member(long id, String name, String email, String phoneNumber) { this.id = id; this.name = name; this.email = email; this.phoneNumber = phoneNumber; } == 사용 == Member member = new member.builder() .name("홍길동") .email("test@gmail.com") .phoneNumber("010-1234-5678") .build();
'개발 > 자바' 카테고리의 다른 글
[java] 자바 Queue / Deque (0) 2021.11.10 자바 컬렉션 정리 (Collection) (0) 2021.11.09 [자바/java] 배열,리스트 정렬 (Comparable, Comparator) (0) 2021.08.27 [자바/java] try-with-resources (0) 2021.05.26 [자바/java] 자바 기본서 헷갈리는것들 정리 (0) 2021.05.26