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 | public class Animal { private int age; private String name; public Animal(Builder builder) { this.age = builder.age; this.name = builder.name; } public static class Builder { private int age = 0; private String name = ""; public Builder setName(String name) { this.name = name; return this; } public Builder setAge(int age) { this.age = age; return this; } public Animal build() { return new Animal(this); } } public static void main(String[] args) { Animal animal = new Animal.Builder().setAge(10).setName("test").build(); System.out.println(animal.toString()); } public String toString() { return "age: " + age + " name:" + name; } } | cs |
장점
- 객체생성시 명확하다.
- 생성자를 여러개 생성하지 않아도 된다.
단점
- 객체 일관성이 깨짐
- 멀티 스레드 프로그램에서 사용시 유의해야함
'Programming > Java' 카테고리의 다른 글
[Error] Could not resolve org.nodejs:node:12.16.1. (0) | 2020.05.04 |
---|---|
No qualifying bean of type 'org.modelmapper.ModelMapper' available: 해결방법 (0) | 2019.12.11 |
[Java] String 뒤집기 (Reverse) (0) | 2018.05.26 |
[Java8] List<Integer> -> int[] 변경방법 (0) | 2018.04.11 |
[알고리즘] 선택정렬, 버블정렬, 삽입정렬, 퀵정렬 (0) | 2017.01.31 |