get을 사용하는 방식이 클래스간 결합도에 영향을 준다고는 정말 생각해보지 못했습니다. 해당 리뷰를 받고 결합도에 관한 정보를 찾아보았습니다.
get을 사용함으로써 증가하는 결합도는 외부 결합도로 모듈이 외부에 있는 다른 모듈의 데이터를 참조할 때의 결합도인 것 같은데 데이터를 얻어오기 위해서는 get을 사용하는 것이 당연하다고 생각해왔습니다. 만약...
네 이런 경우에는 예외처리가 안되어 있습니다.
패턴을 사용해 정규식으로 split을 하고 있는데 ?가 정규식 문자라서 다른 에러가 발생하기도 하네요
그리고 \\n1의 경우에도 에러가 발생하고요.
그런데 정상적인 값이 아닌 정말 예외적인 값이기 때문에 예외가 반환되는 것이 맞다고 생각해서 따로 예외처리는 하지 않았습니다.
그런데 요구사항에서 ...
- 단순하게 바깥에서 `Console.readLine()`를 하면 되는데 왜 `InputView`로 감싸야 했나요?
- `InputView.getString`라는 메서드 이름으로부터 '콘솔로부터 입력을 받아온다'는 의미를 알아낼 수 있을까요? 보다 좋은 네이밍을 고민해봅시다 😁
`private` 메서드가 많아진다는 이야기는 결국 객체가 너무 많은 일을 하고 있다고도 볼 수 있습니다. 이를 다른 클래스에 역할을 부여했다면 어떨까요?
2주 차 부터는 테스트도 요구사항 중 하나로 들어올 텐데요. `private` 메서드는 테스트하기 어렵지 않을까요?
- 해당 부분에 `final`을 붙이지 않은 이유는 변경 가능성이 있어서였을까요?
- `inputNumberInt`는 어떤 값을 받을까요? 만약 요구사항이 `Long`으로 바뀌면 변수명도 바뀌어야겠네요. 변경 전파를 최소화할 수는 없을까요? 또, 해당 변수명만으로 어떤 역할을 하는지 알 수 있을까요?