프리코스때는 다음과 같이 InputView에서 도메인을 생성해 return해주었다.
// InputView.java
public List<Coach> readCoaches() {
List<String> coachNames = readWordsSeparatedByComma();
validateCoach(coachNames);
return convertToCoach(coachNames);
}
하지만 View에서 Domain을 생성까지 담당하면, InputView의 책임이 너무 커지는 것 같았다.
따라서 이번 미션에서는 InputView는 문자열 및 원시값을 전달해주는 역할만을 하도록했다.
Domain으로 바꿔주는 것은 Controller의 책임이라 생각했다.
다만, “a,b,c”
를 List.of(a,b,c);
문자열 파싱해주는 것은 InputView의 책임이라 생각해서 이정도의 가공만 뷰에서 해주었다.
그렇게 생각한 이유는, 기존에는 이름들을 ,
를 기준으로 분리해서 입력받았는데, 구분자가 /
로 변경되었다고 가정해보자.
이는 입력을 받는 형식, 즉 InputView에서의 변화인데 파싱을 다른 곳에서 진행하면 그 곳까지 변화의 영향을 받는다.
따라서 입력 형식에 따라 유동적인 것들은 InputView에서 담당했다.
// InputView.java
public List<String> readCarNames() {
final String DELIMITER = ",";
printInputMessage(ENTER_CAR_NAMES);
String input = readLine();
validateNotEmpty(input);
return splitWordsBy(input, DELIMITER);
}
'우테코 5기 > 레벨1' 카테고리의 다른 글
[체스 미션] 상속 대신 전략패턴 도입하기 (4) | 2023.03.28 |
---|---|
정적 팩토리 메서드로 생성자 다이어트 시키기 (4) | 2023.03.05 |
전략 패턴을 통한 테스트 (2) | 2023.02.17 |
입력값 검증을 InputView에서 진행할까, Domain에서 진행할까? (1) | 2023.02.17 |
상수를 하나의 클래스에 모으는 것이 좋을까? (0) | 2023.02.17 |
프리코스때는 다음과 같이 InputView에서 도메인을 생성해 return해주었다.
// InputView.java
public List<Coach> readCoaches() {
List<String> coachNames = readWordsSeparatedByComma();
validateCoach(coachNames);
return convertToCoach(coachNames);
}
하지만 View에서 Domain을 생성까지 담당하면, InputView의 책임이 너무 커지는 것 같았다.
따라서 이번 미션에서는 InputView는 문자열 및 원시값을 전달해주는 역할만을 하도록했다.
Domain으로 바꿔주는 것은 Controller의 책임이라 생각했다.
다만, “a,b,c”
를 List.of(a,b,c);
문자열 파싱해주는 것은 InputView의 책임이라 생각해서 이정도의 가공만 뷰에서 해주었다.
그렇게 생각한 이유는, 기존에는 이름들을 ,
를 기준으로 분리해서 입력받았는데, 구분자가 /
로 변경되었다고 가정해보자.
이는 입력을 받는 형식, 즉 InputView에서의 변화인데 파싱을 다른 곳에서 진행하면 그 곳까지 변화의 영향을 받는다.
따라서 입력 형식에 따라 유동적인 것들은 InputView에서 담당했다.
// InputView.java
public List<String> readCarNames() {
final String DELIMITER = ",";
printInputMessage(ENTER_CAR_NAMES);
String input = readLine();
validateNotEmpty(input);
return splitWordsBy(input, DELIMITER);
}
'우테코 5기 > 레벨1' 카테고리의 다른 글
[체스 미션] 상속 대신 전략패턴 도입하기 (4) | 2023.03.28 |
---|---|
정적 팩토리 메서드로 생성자 다이어트 시키기 (4) | 2023.03.05 |
전략 패턴을 통한 테스트 (2) | 2023.02.17 |
입력값 검증을 InputView에서 진행할까, Domain에서 진행할까? (1) | 2023.02.17 |
상수를 하나의 클래스에 모으는 것이 좋을까? (0) | 2023.02.17 |