Zdaję sobie sprawę, że prawdopodobnie nie może być odpowiedział, ale szukam, czy istnieje jakiś poradnik o tym, czy używać prywatnych członków bezpośrednio lub publicznych dostęp do metod klasy.Metody korzystające z prywatnych członków lub publicznych akcesorów
Na przykład rozważmy następujący kod (w Javie, ale to będzie wyglądać bardzo podobnie w 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());
}
Funkcja printDimensions()
przedstawia dwa sposoby, aby uzyskać tę samą informację, [A] przy pomocy członków prywatnych (this.numRows, this.numCols
) lub [B] przez akcesory (this.rows(), this.cols()
).
Z jednej strony możesz preferować używanie akcesorów, ponieważ nie ma możliwości nieumyślnej zmiany wartości prywatnych zmiennych składowych. Z drugiej strony możesz preferować bezpośredni dostęp do prywatnych użytkowników w nadziei, że usunie to niepotrzebne wywołanie funkcji.
Domyślam się, że moje pytanie jest, czy jest to standard de facto, czy preferowany?
Kod to Java, a nie C++, usuwanie tagu. W każdym razie pytanie jest prawdopodobnie bardziej * agnostyczne * niż język Java lub C++ ... –
Ten staje się religijny. Nie sądzę, żeby istniał standard. Pozostawiłbym to "jednak", gdy tylko było to możliwe. –
Zgadzam się, że wydaje się być agnostykiem językowym, dlatego włączyłem pierwotnie C++, aby nie ograniczać zakresu pytania do Javy. – jedwards