2021-07-22

엘레강트 오브젝트

새로운 관점에서 바라본 객체지향

Yegor Bugayenko | 조영호 역

1장 출생

1.2 생성자 하나를 주 생성자로 만드세요

생성자는 새로웅 객체에 대한 진입점.
저자는 생성자의 수가 메서드의 수보다 더 많아지는 것을 추천
저자는 객체에 2~3개의 메서드와 5~10개의 셍성자를 포함하는게 적당 하다고 함. (근거는 없으며 임의로 정했을 뿐….;;)

핵심은 응집도가 높고 견고한 클레스에는 적은 수의 메서드와 상대적으로 더 많은 수의 생성자가 존재

생성자가 많아질수록 클래스는 더 유연하게 사용이 될 수 있다.
메서드가 많아질수록 클래스는 사용하기 어려워진다.
메서드가 많아지면 클레스의 초점이 흐려지고, SRP를 위반하게 됨.

생성자의 주된 작업은 제공된 인자를 사용해서 캡슐화하고 있는 프로퍼티를 초기화 하는일
초기화 로직을 단 하나의 생성자에만 위치시키고 주 생성자라고 부르기를 권장
다음 예제처럼 부 생성자라고 부르는 다른 생성자들이 주 생성자를 호출하도록 만들기를 권장

1
2
3
4
5
6
7
8
9
10
11
12
class Cash {
private int dollars;
Cash(float dlr) {
this((int) dlr);
}
Cash(String dlr) {
this(Cash.parse(dlr));
}
Cash(int dlr) {
this.dollars = dlr;
}
}

https://www.yegor256.com/2015/05/28/one-primary-constructor.html