Ich sehe oft Projekte (in Java-Projekten und -Teams, die Eclipse verwenden), denen Funktionsparameter vorangestellt sind p
.
Beispielsweise
public void filter (Result pResult) ...
Ich persönlich sehe keinen Nutzen darin, würde aber gerne wissen, was die Begründung ist. Die beste Erklärung, die ich bisher gehört habe, ist, den Namen identischer benannter Felder zu unterscheiden. Ich habe meine Probleme mit dieser Erklärung, aber ich kann den Punkt verstehen.
quelle
struct
/union
mit einem Element umbrechen .Wie Sie vermuten, sollten Namenskollisionen zwischen dem Parameternamen und den Namen der Mitglieder oder der lokalen Variablen vermieden werden. Mitgliedsvariablen erhalten manchmal aus demselben Grund ein Präfix (z
m_result
. B. ). Persönlich bevorzuge ich es, nur dasthis
Präfix für Mitgliedsvariablen zu verwenden, wenn es zu einer Namenskollision kommt. Es ist in die Sprache eingebaut und jeder weiß bereits, was es bedeutet.quelle
Ich verwende ein Parameterpräfix nur, wenn der Parameter einer Mitgliedsvariablen wie einem Konstruktor oder einem Setter zugewiesen werden soll.
Ich finde, dass die Verwendung eines anderen Variablennamens offensichtlicher ist als die Verwendung des Präfixes "this".
In anderen Situationen vermeide ich die Verwendung eines Parameters, der leicht mit einer Mitgliedsvariablen verwechselt werden kann.
Wenn eine Methode oder Klasse so groß ist, dass sich die Bedeutung der Variablen nur schwer beurteilen lässt, besteht die eigentliche Lösung darin, sie in kleinere Methoden / Klassen aufzuteilen. Die Verwendung von Präfixen ist eine Band-Aid-Lösung, die das zugrunde liegende Problem behebt.
quelle
Paint (clr) { color = clr; }
. B. ). ... Es gibt normalerweise nicht viel Mehrdeutigkeit, obwohlcolor -> clr
insbesondere eine Ausnahme sein kann.Wenn Sie einen Standard festlegen, der 'p' als Präfix für jeden Methodenparameternamen verwendet, können Sie die Methodenparameter im restlichen Methodenkörper leicht erkennen.
Das Auffinden der Methodenparameter spart Zeit. Sie können Ihren Code leicht debuggen.
quelle
Kurz - Diese Vorgehensweise erschwert das Lesen von Code.
Lang - ich werde argumentieren, dass es sich um eine schlechte Praxis handelt, die nur zur Unterstützung anderer schlechter Praktiken verwendet wird. Lassen Sie uns ein paar Gründe untersuchen, warum die Verwendung solcher Präfixe hilfreich sein könnte:
Vermeiden von Kollisionen bei Variablennamen
public void setHeight(int newHeight) { this.height = newHeight; }
Methoden benötigen viele Parameter, deklarieren viele Variablen und wir könnten leicht vergessen, welcher ein Parameter ist.
Mit Ausnahme einiger spezifischer Fälle hilft das Hinzufügen von Parameterpräfixen nur bei Symptomen und löst keine tatsächlichen Probleme.
quelle
Ich bin ein Fan von iParam für In- und OParam für Out-Parameter. Ich würde cParam für Veränderung sagen, aber das ist nicht akzeptabel
quelle