일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kotlin
- 알고리즘
- 구현
- JUnit 5
- 그리디
- 동적계획법
- 투 포인터
- 백준
- 수학
- Network
- 백트래킹
- 플로이드-와샬
- BFS
- swea
- java
- mst
- 프로그래머스
- 완전탐색
- 문자열
- 유니온 파인드
- Effective Java
- 에라토스테네스의 체
- 시뮬레이션
- 후니의 쉽게 쓴 시스코 네트워킹
- dfs
- CS
- 위상정렬
- 스택
- 세그먼트 트리
- 이분탐색
목록Effective Java (13)
반갑습니다!
정적 팩터리와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 단점이 있다 대안 1: 점층적 생성자 패턴(telescoping constructor pattern) 점층적 생성자 패턴(telescoping constructor pattern)을 사용해서 해결할 수 있지만, 매개변수 개수가 더 늘어나면 클라이언트 코드를 작성하거나 가독성이 떨어진다는 한계가 있음 ex) 원하는 매개변수를 모두 포함한 생성자 중에서 가장 짧은 것을 선택해야함 Nutritionfacts cocaCola = new NutritionFacts(240, 8, 100, 0, 35, 27); public class NutritionFacts { private final int servingSize; // (ml, 1회 제공..
클래스는 생성자와 별도로 정적 팩터리 메서드 (static factory method)를 제공할 수 있다. public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 장점 이름을 가질 수 있다 생성자는 반환될 객체의 특성을 제대로 설명하지 못함 정적 팩터리는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사할 수 있음 ex) BigInteger(int, int Random) vs BigInteger.probablePrime() 후자가 값이 소수인 BigInteger 를 반환한다는 의미를 더 잘 설명함 한 클래스에 시그니처가 같은 생성자가 여러 개 필요하다면 정적 팩터리 메서드를 사용하자 시그니처: 메서드명, 파..
생성자 대신 정적 팩토리 메소드를 고려하라 클래스는 생성자와 별도로 정적팩토리 메소드(static factory method)를 제공할 수 있다. 이 방식에는 장점과 단점이 모두 존재한다. 우선 장점을 먼저 알아보자. 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체만으로는 반환될 객체의 특성을 제대로 설명하지 못하지만, 정적 팩토리 메소드는 이름만 잘 지으면 반환될 객체의 특성을 쉽게 묘사할 수 있다. 예제를 보며 이해해보자. 위의 예제 코드에서 withAge(), withHeight()와 같은 정적 팩토리 메소드를 사용함으로써 반환될 객체의 특성을 쉽게 파악할 수 있게 된다. 그리고 하나의 시그니처로는 생성자를 하나만 만들 수 있기 때문에 한 클래으세 시그니처가 같은 생성자가 여러 ..