본문 바로가기

All205

[이펙티브자바 3판] ITEM2. 생성자에 매개변수가 많다면 빌더를 고려하라 이번장의 핵심은... 생성자나 정적 팩터리가 처리해야 할 매개변수가 많다면 빌더 패턴을 선택하는게 더 낫다 → 매개변수 중 다수가 필수가 아니거나 같은 타입이면 특히 더 그렇다. 빌더는 점층적 생성자보다 클라이언트 코드를 읽고 쓰기가 훨씬 간결하고, 자바빈즈보다 훨씬 안전함 점층적 생성자 패턴 A a = new A(240,2,2,3,4,...) → 매개변수 개수가 많아지면 클라이언트 코드를 작성하거나 읽기 어려움 자바빈즈 패턴 → 매개변수가 없는 생성자로 객체를 만든 후, setter 메서드들을 호출해 원하는 매개변수의 값을 설정하는 방식 A a = new A(); a.setName(~); a.setAge(~); → 자바빈즈 패턴에서는 객체 하나를 만들려면 메서드를 여러 개 호출해야 하고, 객체가 완전히.. 2020. 9. 3.
[이펙티브자바 3판] ITEM1. 생성자 대신 정적 팩터리 메서드를 고려하라 이번장의 핵심은... 정적 팩터리 메서드와 public 생성자는 각자의 쓰임새가 있으니 상대적인 장단점을 이해하고 사용하는 것이 좋음 → 정적 팩터리 사용이 유리한 경우가 더 많으므로 무작정 public 생성자를 제공하던 습관이 있다면 고치자 정적 팩터리 장점 이름을 가질 수 있음 ex) 생성자 BigInteger(int, int, Random), 정적 팩터리 메서드 BigInteger.probablePrime 호출될 때마다 인스턴스를 새로 생성하지 않아도 됨 반환 타입의 하위 타입 객체를 반환할 수 있는 능력이 있음 자바 8부터 인터페이스가 정적 메서드를 가질 수 없다는 제한이 풀림 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있음 정적 팩터리 메서드를 작성하는 시점에는 반환할 객체의 클.. 2020. 9. 3.