getters and setters를 사용하는 경우 개인 회원 변수의 이름을 어떻게 지정해야합니까?

StackOverflow https://stackoverflow.com/questions/169216

  •  05-07-2019
  •  | 
  •  

문제

일종의 후속 조치로 접두사에 대한이 질문, 나는 접두사가 나쁘다는 스레드의 대부분의 사람들과 동의합니다. 그러나 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 가이 스레드에서 말했듯이). 나는 이것을 수행해야 할 몇 가지 객관적인 이유가 있다고 생각합니다.

  1. 이는 과제 (특히 세터 및 생성자)에 대해 "this.x = x"를 쓰지 않아도됩니다.
  2. 현지 변수/인수와 필드를 구별합니다. 이 작업을 수행하는 것이 중요합니다. 필드는 범위가 더 넓어지기 때문에 현지인보다 다루기가 더 까다 롭습니다. 추가 캐릭터를 추가하는 것은 코더에게 약간의 정신 경고 신호입니다.
  3. 일부 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를 자동으로 생성 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top