728x90
728x90
빌더 패턴 (Builder pattern)
- 객체를 생성하는 클래스와 객체를 표현하는 클래스를 분리하는 디자인 패턴
- '생성' 디자인 패턴
- 생성자의 매개변수로 값을 받아 멤버 변수에 대입할 때에는 실수가 발생할 수 있음
(매개변수가 많을수록 포지셔널을 지키기 어려워짐)
→ Builder 패턴은 set 메서드의 대상이 되는 멤버 변수 이름이 명확하게 제시되므로, 실수 방지
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 32 33 34 35 36 37 38 39 40 41 42 43 44 | // 예시 // 외부 클래스 public class Todo { private String content; private int complete; // 기본 생성자를 private 접근 제어자로 재정의 private Todo() {} // 정적 내부 클래스 public static class TodoBuilder { // 외부 클래스와 동일한 구성으로 멤버 변수 선언 private String content; private int complete; // 내부 클래스를 반환하는 set 메서드 정의 public TodoBuilder setContent(String content) { this.content = content; return this; } public TodoBuilder setComplete(int complete) { this.complete = complete; return this; } // 외부 클래스를 생성하는 메서드 public Todo build() { Todo todo = new Todo(); // todo 객체에 TodoBuilder 클래스의 멤버변수를 대입함 todo.content = content; todo.complete = complete; return todo; } } // end of Builder Class } // end of Outer Class ---------------------------------- // main Todo todo = new MyBuilder().setComplete(값).setContent(값).build(); | cs |
320x100
반응형
'Java > Design Pattern' 카테고리의 다른 글
[Java] 전략 패턴 (Strategy pattern) (0) | 2023.04.11 |
---|---|
[Java] 싱글톤 패턴 (Singleton pattern) (0) | 2023.04.10 |
[Java] 어댑터 패턴 (Adapter pattern) (0) | 2023.03.27 |
[Java] 디자인 패턴 정리 (0) | 2023.03.27 |
[Java] 템플릿 메서드 패턴 (Template Method pattern) (0) | 2023.02.11 |