11월 28일 목요일
AM 알고리즘 풀이
PM 과제 수행
빌더와 생성자의 차이
프로젝트를 하다보니 Dto에서 빌더와 생성자 둘 중 사용할 것을 고르는데 둘의 차이가 어떻고 어떤 상황에서 어떤 것을 선택해야하나 싶어서 찾아보았다.
직관적이다
한정적이다
오버로딩을 통한 유연성
// 생성자 방식 public class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } }
// Builder 패턴 public class User { private String name; private int age; private User(Builder builder) { this.name = builder.name; this.age = builder.age; } public static class Builder { private String name; private int age; public Builder setName(String name) { this.name = name; return this; } public Builder setAge(int age) { this.age = age; return this; } public User build() { return new User(this); } } } // 사용 예 User user = new User.Builder() .setName("Alice") .setAge(30) .build();
@builder 활용시
import lombok.Builder; @Builder public class User { private String name; private int age; }
각자의 장점을 인지하고 상황에 맞게 적용해보도록 노력해야겠다.