2011-03-11 4 views
0

자바에서는 많은 수의 필드와 관련 getter/setter 메서드가 있습니다. 필드 나 필드별로 그룹화하고 getter/setters를 먼저 그룹화 하시겠습니까?getters/setter를 변수로 그룹화해야합니까?

스타일 1 :

int A 
int getA() 

int B 
int getB() 

스타일 2 :

int A 
int B 

int getA() 
int getB() 
+1

저는 Style2를 사용하고 있습니다 ... – Adnan

+0

저는 이것이 getters와 setter의 문제라고 생각하지 않습니다. 이 질문은 다른 수업 방법에도 유효하지 않습니까? – starcorn

답변

5

스타일에 관해서는 이야기하지 않기 때문에이 질문에 대한 답변이되지 않을 수도 있습니다.하지만 사소한 게터와 세터에게는 더 이상 코드를 쓰지 않습니다. Projekt Lombok에서 살펴보고, 당신이 될 것이다 작성해야 할 것입니다 모든했다 :

@Getter @Setter int a; 
@Getter @Setter int b; 

그리고이 여전히 너무 많은 코드처럼 보이는 경우, 주석도 클래스 수준에서 할 수 있습니다.

0

는 Personnally, 스타일 2. 대부분 팀의 코딩 표준에 따라 달라집니다.

저는 public에서 private으로 시작하여 맨 위에 모든 멤버 변수를 갖는 것을 선호합니다. 그런 다음 모든 메소드가 다시 가시성에 따라 정렬됩니다.

0

스타일 2는 일반적으로 본 것입니다. 그러나 내가 생각하는 엄격한 규칙은 없습니다.

0

먼저 필드를 그룹화 한 다음 메서드를 따르는 것이 좋지만 실제로는 중요하지 않습니다. 중요한 것은 모든 컨벤션을 프로젝트 전체에서 일관되게 따름입니다.

0

나는 당신이 더 잘 선언 할 것이라고 생각한다. 이전에 변수를 선언하고, 분리 된 methode 섹션에서 Get/Set 메서드를 사용한다. 특히 몇몇 programmign 언어가 변수들 사이의 프로 시저를 선언 할 수 없기 때문에, 그것에 익숙해 질 필요가 없습니다. 변수에서 함수를 분리하는 것 외에도 필요할 때 함수를 쉽게 검색 할 수 있습니다.

2

스타일 3)

int a 
int b 

int getA() 
int getB() 
4

은 어쩌면 당신은 Java Code Conventions에보고해야한다 :

넣고 선언에만 블록의 시작 에서. 블록은 중괄호 "{"및 "}"로 둘러싸인 코드입니다. 변수를 처음 사용할 때까지 을 선언 할 때까지 기다리지 마십시오. 부수적 인 프로그래머 인 과 범위 내에서 이식성을 혼란스럽게 할 수 있습니다.

이것은 메소드, if/else 블록, 루프 및 물론 클래스에 적용됩니다.

그래서이 컨벤션에서는 두 번째 방법을 권장합니다.

+0

여기에 잘못 입력되었지만 어쨌든 의심스러운 접근 방식입니다. –

+0

@Andy Thomas-Cramer : 왜 물어볼 수 있습니까? –

+0

Mappapplied -이 선언은 블록으로되어 있지 않습니다. 의심스런 접근법 - 과거의 프로그래머들이 익숙한 자바의 조상 중 한 곳에서 필요했던 시대 착오적 인 행동이지만, 현재 리팩토링에 대한 불필요한 오류 및 방해물입니다.Sutter와 Alexandrescu는 18 번 항목의 "C++ 코딩 표준"에서 "가능한 한 지역 변수를 선언하십시오"라는 동일한 문제에 대해 더 자세히 설명합니다. 같은 주장이 대부분 적용됩니다. –