예외나 상수같은것을 처리하실 때 클래스를 어떻게 관리하시나요?

2013-08-07 18:21

안녕하세요 자바지기님에게 자바를 배우고 있는 학생입니다.

코드를 짜다가 궁금한 것이 생겼는데

Static final 상수들이나 자기가 만든 예외를 따로 클래스로 빼서 관리하는 것이 제 생각엔 조금 더 가독성이 뛰어날 것 같은데 보통 어떻게 처리하시나요?

그리고 그렇게 만든 클래스는 새로운 패키지를 정의해서 관리하시나요?

직접 개발하시는 분들은 어떻게 하시는지 궁금합니다.

지금까지 한 방법 : ㄴchess.package ㄴBoard.class <- 상수가 정의되어 있음. 다른 클래스에서 필요하면 Board.MAX 이런식으로 호출. ㄴRank.class ㄴMyException.class <- 그냥 패키지중 하나에 직접 만든 예외를 만들어 넣음. .... ㄴpieces.package ㄴRook.class ....

생각하는 방법 : ㄴtemplate.package <- 상수를 관리하는 패키지를 만듬. ㄴStaticVariable.class ㄴException.class ....

(절대 자바지기님이 여기에 질문을 올리라고 하셔서 올리는게 아닙니다.)

4개의 의견 from SLiPP

2013-08-08 08:56

나는 이 같은 경우 가능하면 상수를 관련된 클래스에 구현한다. 별도의 상수 클래스로 두는 것도 좋은 전략이지만 가능하면 관련된 클래스에 두는 것이 좋다고 본다.

현재 체스 게임의 경우도 Board에 COLUMN_SIZE, ROW_SIZE가 있는데 그 보다는 Position 클래스에 두는 것도 좋은 선택이라고 본다. Exception의 경우도 한 곳에 모아두기 보다는 해당 Exception을 사용하는 패키지에 두는 것이 좋은 선택이라고 본다.

즉, 하나로 퉁쳐서 처리하고 싶은 욕구가 있겠지만 그 보다는 각각의 역할을 명확하게 규정하고 관련된 곳에 모아두는 것이 코드를 읽는 입장에서나 향후 유지보수 입장에서도 좋다. 물론 이렇게 하려면 업무 로직에 대한 이해도도 높아야 되고 더 많은 고민을 해야겠지. 하지만 어쩌겠냐? 이것을 하는 것이 우리 프로그래머들의 숙명이고 재미인 것을...

2013-08-08 11:23

질문 중에 이해가 안 되는 말이 있습니다.

"Static final 상수들이나 자기가 만든 예외를 따로 클래스로 빼서 관리하는 것이 제 생각엔 조금 더 가독성이 뛰어날 것 같은데 보통 어떻게 처리하시나요?" 라고 하셨는데 왜 "가독성"에 초점을 두셨나요?

분리하면 가독성이 좋아진다고 느끼신 이유가 궁금하네요. 가능하면 사례를 보여 주시면 좋겠습니다.

2013-08-12 20:55

자바 프로그래머가 아니지만 개인 의견 남깁니다.

일단 상수는 별도로 관리하는 것이 좋습니다. (예를 들어, C 프로그램에서는 헤더 파일에서 관리하기도 합니다.) 그러나 지역에 국한된 상수라면(즉, 공유할 필요가 없다면) 그 지역에서 선언하는 것도 한 방법이 될 수 있습니다. 그러므로 상황에 맞게 처리하는 것이지 꼭 이렇게 해야 옳다고 볼 수는 없습니다.

참, 상수를 사용하는 이용하는 이유 중의 하나는 가독성입니다. 다만, 모든 상수를 한 곳에서만 관리한다고 가독성이 증가하는 것은 아닙니다. 적절한 그룹화도 필요하고,지역적인 상수까지 별도로 빼내서 관리하는 것은 생각해 볼 문제입니다.

감사합니다.

의견 추가하기

연관태그

← 목록으로