-
깔끔한 코드 작성에 관한 의문 (과 해결)프로그래밍/Java 2023. 11. 14. 21:14
소트웍스 앤솔러지 라는 책을 읽은 사람의 책을 보며 이러한 궁금증이 생겼다.
메소드 분리
규칙1. 한 메소드에 오직 한 단계의 들여쓰기만 한다.
규칙2. else 예약어를 쓰지않는다.
객체 분리
규칙3. 모든 원시값과 문자열을 포장한다.
규칙7. 일급 컬렉션을 쓴다.
볼드 처리한 3개의 규칙이 무엇인지 궁금증이 생겼고 튜터님을 통해 이 궁금증을 해결하였다.
첫번째
규칙2. else 예약어를 쓰지않는다.
간단히 말하면 else를 쓰면 분기가 생긴다.
그래서 코드가 깔끔하게 읽히지 않으며, 규칙1인 들여쓰기를 줄이기 위함도 있다.
public ~~~~~~~~~{ int chooseMenu = sc.nextInt(); sc.nextLine(); if (chooseMenu == 1) { System.out.println("주문목록에 담았습니다."); return addOrder(menuList.get(choice), 1); } System.out.println("취소되었습니다."); } }
이렇게 else을 쓰지않으면 분기처리가 확실해진다.
두번째
규칙3. 모든 원시값과 문자열을 포장한다.
얼마전 특강시간에도 래퍼클래스를 쓰라는 말을 들었다.
짧은 시기에 두번이나 이 내용을 들으니 뭔가 굉장히 중요한 내용인것 같아 질문을 하였다.
이유는
원시타입은 휴먼에러가 많이 난다.
예를 들자면 unsigned int 와 int의 연산 등
하지만 래퍼클래스를 사용할 경우 이러한 에러를 모두 잡아주기 때문에 사용하는 것이다.
그리고 표준화의 문제 때문에 래퍼클래스를 사용하기도 한다.
래퍼클래스는 모두가 같은 말을 한다고 할 수 있기 때문
세번째.
일급 컬렉션
처음 들어보는 말이기에 질문을 해보았다.
간략히 설명해보자면
"컬렉션을 포함한 클래스는 반드시 다른 멤버변수가 없어야한다.
그렇게하면 각 컬렉션은 그 자체로 포장되어 있게 된다."
라는 이유이다.
생각보다 이해가 안되는 내용이기에 나중에 더 깊게 공부해봐야겠다.
참고로 일급 객체도 있다. (자바스크립트에서 사용되는 용어)