IO를 따로 관리하는게 어떤 동작일까요?
저는 지금의 구조가 말씀하신 상황을 처리할 수 있다고 생각했습니다! 제가 의도한 것은 예를 들어, 콘솔 입출력 대신 파일 입출력을 지원해야 한다면 FileIO를 구현하고 10번째 라인을 IO io = new FileIO();로 작성하고 이외의 코드는 수정하지 않으면서도 요구사항을 만족하는 것입니다.
네 맞습니다~ 하드코딩된 부분은 상수화하는게 좋습니다. 하지만 지나친 상수화는 선언된 위치와 사용된 위치를 계속 번갈아 봐야한다는 가독성 측면에서 불편함도 있습니다! 이점도 함께 알고 계시면 좋을 것 같습니다.
특히 상수화는 "//"와 같은 리터럴이 여러번 등장할 때 그 효과가 느껴지는데, 이 코드에서는 1번만 사용되기 때문에 제외한 것이 의도입니다!
조건문을 별도의 메서드로 관리하는 것을 말씀하신걸까요? 예를 들어 parseOperands의 for{ conditionCheck() }와 같은 동작일까요? 제가 이해한 것이 맞다면 말씀하신 것이 기능의 분리라는 측면에서는 고려할만 하다고 생각합니다.
하지만 기능의 확장성 측면에서는 validate가 그 역할을 충분히 할 수 있고, isEmpty(...
입력 요구사항이 "구분자와 양수로 구성된 문자열"이었던 것으로 기억합니다!
그래서 저는 double 타입으로 연산을 하고, . 는 유효하지 않은 구분자로 처리했습니다 :)
integer 타입과 double 타입의 연산을 모두 가능하게 하면서 말씀해주신 제너릭이나 메서드 오버로딩도 고려했었는데
적용을 못했습니다 ㅎㅎ 의견 감사합니다! 리팩토링할...
방어적 복사 용어를 처음 듣고 공부하고보니 진짜 도움이 많이된거같아요! 우선 감사합니다!!
new ArrayList<>() / Collections.unmodifiableList() / List.copyOf() 중 하나를 2주차 과제에 적절하게 판단해서 사용해봐야할거같아요! 이런 부분까지 고민해서 지적해주셔서 감사합니다 :)