함수 매개 변수 앞에 접두사를 사용하는 프로젝트 (Eclipse를 사용하는 Java 프로젝트 및 팀)가 자주 표시됩니다 p
.
예를 들어
public void filter (Result pResult) ...
나는 개인적으로 이것에 어떤 이점도 보지 못하지만 추론이 무엇인지 알고 싶습니다. 내가 들었던 가장 좋은 설명은 동일한 이름을 가진 필드의 이름을 구별하는 것입니다. 나는 그 설명에 문제가 있지만 요점을 이해할 수 있습니다.
답변
잘 알려진 헝가리 표기법 과 같이 기호에 의미있는 접두사를 추가하는 관행은 IDE가 존재하지 않거나 너무 원시적 인 시대로 거슬러 올라갑니다. 오늘날 마우스 클릭만으로 선언 지점을 찾을 때 공통 접두어를 지정하여 이름의 가장 소중한 부분 인 처음 몇 글자를 망칠 수는 없습니다.
답변
의심되는 것처럼 매개 변수 이름과 멤버 또는 로컬 변수 이름 사이의 이름 충돌을 피하는 것입니다. 같은 이유로 멤버 변수에 접두사가 부여되는 경우가 있습니다 (예 🙂 m_result
. 개인적으로, this
이름 충돌이있는 경우 멤버 변수에 접두사를 사용하는 것을 선호합니다 . 그것은 언어에 내장되어 있으며 모든 사람들은 이미 그 의미를 알고 있습니다.
답변
매개 변수를 생성자 또는 setter와 같은 멤버 변수에 할당하려는 경우에만 매개 변수 접두사를 사용합니다.
Paint (newColor) {
color = newColor;
}
저에게는 “this”접두사를 사용하는 것보다 다른 변수 이름을 사용하는 것이 더 맹목적으로 보입니다.
다른 상황에서는 멤버 변수와 쉽게 혼동 될 수있는 매개 변수를 사용하지 않습니다.
메소드 또는 클래스가 너무 커서 변수의 의미를 말하기가 어려운 경우 실제 솔루션은 더 작은 메소드 / 클래스로 나누는 것입니다. 접두사를 사용하면 근본적인 문제를 해결하는 반창고 솔루션입니다.
답변
각 분석법 파라미터 이름과 함께 접두사로 ‘p’를 사용하도록 표준을 설정하면 나머지 분석법 본문에서 분석법 파라미터를 쉽게 인식 할 수 있습니다.
분석법 파라미터를 찾는 시간이 절약됩니다. 코드를 쉽게 디버깅 할 수 있습니다.
답변
짧게-이 연습은 코드를 읽기 어렵게 만듭니다.
긴-다른 악의적 인 관행을 지원하는 데에만 사용되는 악의적 인 관행이라고 주장합니다. 그러한 접두사를 사용하는 것이 도움이 될 수있는 몇 가지 이유를 살펴 보겠습니다.
-
변수 이름의 충돌 방지
- 매개 변수 이름이 매개 변수가 무엇인지 정확하게 표현합니까? “정확히 동일한”매개 변수 및 클래스 필드가있는 경우 매개 변수가 필요하지 않습니다.
- 이 경우 Aaron의 답변에 설명 된 new * 접두사와 같은 클래스 생성자에 접두사를 사용하는 것이 좋습니다. 세터 메소드에도 유용 할 수 있습니다. 예 :
public void setHeight(int newHeight) { this.height = newHeight; }
-
메소드는 많은 매개 변수를 취하고 많은 변수를 선언하며 매개 변수가 무엇인지 쉽게 잊을 수 있습니다.
- 위에서 설명한 것처럼 문제는 변수의 수에 있습니다.
- 프로그램이 제대로 구성되지 않았을 수 있습니다. 모든 변수가 “독립적”인지 확인하십시오. 아마도 구조 나 클래스로 구성되어야합니다. 어쩌면 전체 계산이나 프로세스는 그러한 변수 수만큼 작동하기 위해 별도의 클래스로 래핑되어야합니다.
- 그런 수의 변수가 필요하더라도 의미있는 이름을 사용해야하며 접두사는 당신과 의미있는 부분 사이에 있습니다.
- 메서드는 매우 길며 매개 변수가 무엇인지 추적하려면 접두사를 사용해야합니다.
- 문제는 메소드의 길이에 있습니다. 프로그램이 제대로 작성되면 항상 메소드 헤더와 본문 전체가 단일 화면에 표시되어야합니다.
- 방법을 더 작은 블록으로 나누십시오.
특정 접두사를 추가하는 경우를 제외하고는 증상에 도움이 될뿐 실제 문제는 해결되지 않습니다.
답변
나는 iParam의 팬이며, oParam은 매개 변수입니다. 나는 cParam에게 변화를 말하고 싶지만 받아 들일 수는 없다