getters and setters를 사용하는 경우 개인 회원 변수의 이름을 어떻게 지정해야합니까?
문제
일종의 후속 조치로 접두사에 대한이 질문, 나는 접두사가 나쁘다는 스레드의 대부분의 사람들과 동의합니다. 그러나 Getters와 Setters를 사용하는 경우 어떻습니까? 그런 다음 개인적으로 저장된 변수와 공개적으로 액세스 할 수있는 getter 이름을 차별화해야합니다. 나는 보통 밑줄을 사용하지만 더 좋은 방법이 있습니까?
해결책
이것은 완전히 주관적인 질문입니다. "더 나은"방법은 없습니다.
한 가지 방법은 다음과 같습니다.
private int _x;
public get x():int { return _x; }
public set x(int val):void { _x = val; }
다른 하나는 :
private int x;
public get X():int { return x; }
public set X(int val):void { x = val; }
정답도 아닙니다. 각각 스타일 장점과 단점이 있습니다. 가장 좋아하는 것을 선택하고 일관되게 적용하십시오.
다른 팁
나는 다른 사람들이 언급했듯이 밑줄로 필드를 밑줄로 접두사하는 것을 좋아합니다.
private int _x;
나는 이것이 바로 개인적인 취향을 넘어서고 있다고 생각합니다 (David Arno 가이 스레드에서 말했듯이). 나는 이것을 수행해야 할 몇 가지 객관적인 이유가 있다고 생각합니다.
- 이는 과제 (특히 세터 및 생성자)에 대해 "this.x = x"를 쓰지 않아도됩니다.
- 현지 변수/인수와 필드를 구별합니다. 이 작업을 수행하는 것이 중요합니다. 필드는 범위가 더 넓어지기 때문에 현지인보다 다루기가 더 까다 롭습니다. 추가 캐릭터를 추가하는 것은 코더에게 약간의 정신 경고 신호입니다.
- 일부 IDE에서 밑줄은 자동 완성이 필드를 제안 목록의 상단에 정렬하게합니다. 이를 통해 클래스의 모든 필드를 한 블록으로 쉽게 볼 수 있습니다. 이것은 차례로 도움이 될 수 있습니다. 대형 클래스에서는 작업중 인 코드와 동일한 화면에서 필드 (일반적으로 클래스 상단에 정의)를 볼 수 없습니다. 상단에 정렬하면 편리한 참조가 제공됩니다.
(이 규칙은 Java를위한 것이지만 다른 언어에 대해서도 비슷한 규칙이 존재합니다)
이런 것들이 작아 보이지만 그들의 유병률은 내가 코딩 할 때 확실히 내 인생을 더 쉽게 만듭니다.
Java에는 Python에는 자아가 있습니다. self.foo와 다른 언어에는 비슷한 것이 있으므로 이미 언어 구조를 사용할 수있을 때 특별한 방식으로 무언가를 명명 할 필요가 없습니다. 동일한 맥락에서 좋은 IDE와 편집자는 멤버 변수를 이해하고 특별한 하이라이트를 제공하므로 특수 이름을 사용하여 실제로 볼 수 있습니다.
내가 사용하는 경우에 민감한 언어에서는 다음과 같습니다.
private int myValue;
public int MyValue
{
get { return myValue; }
}
그렇지 않으면 밑줄을 사용합니다
Private _myValue As Integer
Public ReadOnly Property MyValue As Integer
Get
Return _myValue
End Get
End Property
프로그래머 가이 작업을 수행하는 것만 큼 다양한 방법이 있지만, 더 인기있는 방법 중 일부는 (재산을 위해 Foo
):
- 음
- m_foo
- _foo
- foo
나 처럼 "this.x = x"를 작성합니다. 나에게 매우 분명합니다. 또한 Eclipse를 사용할 때는이 방법으로 Getters/Setter를 자동으로 생성 할 수 있습니다.