728x90
#코딩 #개발자 #객체지향의사실과오해 #개발자필독 #도서리뷰
1 주차
금 | Assignment #3
📚 2장. 객체 생성과 파괴
✔️ TIL
오늘 TIL 3줄 요약
- 생성자 매개변수가 많을 경우에 빌더사용을 고려해볼것
- 빌터패턴, lombok의 @Builder
- Enum, EnumSet<>
TIL (Today I Learned) 날짜
2023.01.06
오늘 읽은 범위
2장. 객체 생성과 파괴 - 아이템2
책에서 기억하고 싶은 내용을 써보세요.
- 생성자 매개변수가 많은 경우에 빌더 사용을 고려해볼것.
- 생성자 / 자바빈(setter) 사용을 개선한 패턴이
빌더패턴!! 매개변수가 많거나, 매개변수가 늘어나 수 있는 가능성이 높은경우 사용하면 좋다.
- 빌더패턴
public abstract class Pizza{
public enum Topping{
HAM, MUSHROOM, ONION
}
final EnumSet<Topping> toppings;
abstract static class Builder<T extends Builder<T>>{
EnumSet<Topping> toppings = EnumSet.noneOf(Topping.class);
public T addTopping(Topping topping){
toppings.add(Object.requiredNonNull(topping));
return self();
}
abstract Pizza build();
protected abstract self();
}
Pizza(Builder<?> builder){
toppings = builder.toppins;
}
pubic static void main(String[] args){
}
}
public class NyPizza extends Pizza{
public enum Size{
SMALL, MIDIUM, LARGE
}
private final Size size;
public static class Builder extends Pizza.Builder<Builder>{
private final Size size;
puublic Builder(Size size) {
this.size = Objects.requireNonNull(size);
}
@Override
public NyPizza build(){
return new NyPizza(this);
}
@Override
protected Builder self(){
return this;
}
}
private NyPizza(Builder builder){
super(builder);
size=builder.size;
}
}
public class PizzaClient{
public static void main(String[] args){
NyPizza nyPizza = new NyPizzaa.Builder(NyPizza.Size.MEDIUM)
.addTopping(Pizza.Topping.HAM)
.addTopping(Pizza.Topping.MUSHROOM)
.build();
}
}
**롬복의 @Builder
@Builder
public class NutritionFacts {
@Builder.Default private int servingSize = 10;
private int sodium;
private int carbohydrate;
private int servings;
@Singular private int List<String> name;
public static void main(String[] args){
NutritionFacts nutritionFacts = NutritionFacts.builder()
.servings(10)
.name("baejiyoung")
.name("jongchan")
.build();
}
}
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 책으로 봐서는 이해안됬던 부분이 강의를 들으니까 이해가 확 된다. 강의는 백기선 강사님의 유튜브 무료강의를 들었다.
그외에 공부한 내용
Enum >> 블로그에 업로드 해놓음.
'개발자 필독도서 리뷰' 카테고리의 다른 글
[독서] ”이펙티브자바 3편“ 5일차 (0) | 2023.01.16 |
---|---|
[독서] “이펙티브 자바 3편” 4일차 (0) | 2023.01.09 |
[독서] “이펙티브 자바 3편” 2일차 (0) | 2022.10.19 |
[독서] “이펙티브 자바 3편” 1일차 (0) | 2022.10.17 |
[독서] "객체지향의 사실과 오해" 7일차 (0) | 2022.04.22 |