@Builder를 왜 사용하는가

김명후·2022년 11월 6일
0
post-thumbnail

@Builder는 디자인 패턴 중 빌더 패턴을 해당 클래스에서 사용할 수 있게 해주는 어노테이션이다.
왜 이 어노테이션을 사용해야 할까?

class Coffee {
	
	int shots;
	int water;
	int milk;
	int syrup;
	boolean whippedCream;
}

Coffee americano = new Coffee(1, 150, null, 1, false);

우리는 클래스를 생성하는 부분이랑 사용하는 부분을 나눠서 구현하기 때문에 실제로 위 코드에서 americano의 생성자에 들어간 것이 무슨 의미인지 저 생성자만 보고 직관적으로 이해하기가 힘들다. 그래서 생성자를 호출할 때마다 생성자의 각 파라미터가 의미하는 게 무엇인지 일일이 확인해줘야한다. 따라서 그만큼 실수할 가능성이 높아진다는 뜻이다.

Coffee americano = new Coffee(1, 150, null, 1, false);

Coffee americano = Coffee.bulider()
							.shots(1)
							.water(250)
							.syrup(1)
                            .build();
                            
Coffee latter = Coffee.bulider()
						 .milk(200)
						 .shots(1)
						 .water(50)
						 .whippedCream(true)
						 .syrup(2)
                         .build();

빌드패턴으로 생성한 인스턴스를 보자. 아무리 많은 속성들을 새로운 객체 안에 추가하더라도 숫자의 값이 무엇을 의미하는지 직관적으로 알 수 있다.

더 깊이 공부하고 싶으시다면 이 링크를... -> 근데영어임

0개의 댓글