Ich realisiere dies wahrscheinlich nicht beantwortet, aber ich bin auf der Suche nach gibt es eine Art von Anleitung darüber, ob private Mitglieder direkt oder öffentliche Accessoren innerhalb der Klassenmethoden zu verwenden.Methoden mit privaten Mitgliedern oder öffentlichen Accessoren
Betrachten wir zum Beispiel den folgenden Code (in Java, aber es wäre sehr ähnlich aussehen in C++):
public class Matrix {
// Private Members
private int[][] e;
private int numRows;
private int numCols;
// Accessors
public int rows(){ return this.numRows; }
public int cols(){ return this.numCols; }
// Class Methods
// ...
public void printDimensions()
{
// [A] Using private members
System.out.format("Matrix[%d*%d]\n", this.numRows, this.numCols);
// [B] Using accessors
System.out.format("Matrix[%d*%d]\n", this.rows(), this.cols());
}
Die printDimensions()
Funktion zwei Möglichkeiten veranschaulicht die gleichen Informationen zu erhalten, [A] mit privaten Mitglieder (this.numRows, this.numCols
) oder [B] über Zugriffsmodule (this.rows(), this.cols()
).
Auf der einen Seite bevorzugen Sie möglicherweise die Verwendung der Accessoren, da Sie den Wert der privaten Membervariablen nicht versehentlich ändern können. Auf der anderen Seite ziehen Sie es möglicherweise vor, direkt auf die privaten Mitglieder zuzugreifen, in der Hoffnung, dass dadurch der unnötige Funktionsaufruf entfernt wird.
Ich denke, meine Frage ist, ist entweder der De-facto-Standard oder bevorzugt?
Code ist Java, nicht C++, Entfernen des Tags. Auf jeden Fall ist die Frage wahrscheinlich mehr * sprachenunabhängig * als Java oder C++ ... –
Dieser wird religiös. Ich glaube nicht, dass es einen Standard gibt. Ich würde jedoch "dies" so oft wie möglich aufgeben. –
Ich stimme zu, dass es sprachunabhängig scheint, weshalb ich ursprünglich C++ einschloss, um den Umfang der Frage nicht auf Java zu beschränken. – jedwards