Можно ли отказаться от геттеров и сеттеров для простых классов?

I Я делаю очень простой класс для представления позиций в трехмерном пространстве. [12 150] В настоящее время я просто разрешаю пользователю напрямую изменять отдельные значения X , Y и Z . Другими словами, это общедоступные переменные-члены.

template <typename NumericType = double>
struct Position
{
    NumericType X, Y, Z;

    // Constructors, operators and stuff...
};

Это объясняется тем, что, поскольку NumericType является параметром шаблона, я не могу полагаться на наличие достойного способа проверки значений на работоспособность. . (Откуда мне знать, что пользователь не захочет, чтобы позиция была представлена ​​отрицательными значениями?) Следовательно, нет смысла добавлять геттеры или сеттеры, чтобы усложнить интерфейс, и прямой доступ должен быть предпочтительным из-за его краткости.

Pos.X = Pos.Y + Pos.Z; // Versus...
Pos.SetX(Pos.GetY() + Pos.GetZ());

это нормальное исключение из хорошей практики? Будет ли (гипотетический) будущий сопровождающий моего кода выследить меня и ударить меня по лицу?

19
задан Maxpm 22 April 2012 в 05:05
поделиться