Я заметил, что даже когда я уважаю принцип единой ответственности OOD, иногда классы все еще растут. Иногда доступ к переменным-членам непосредственно в методах кажется похожим на глобальное состояние, и в текущей области существует много материала. Просто взглянув на метод, который в настоящее время работает, теперь невозможно определить, откуда происходят невидимые переменные, доступные в текущей области.
Когда я работал вместе с другом в последнее время, я понял, что пишу гораздо более подробный код, чем он, потому что передаю переменные-члены еще как параметры в каждый метод.
Является ли эта плохая практика?
edit: example:
class AddNumbers {
public:
int a, b;
// ...
int addNumbers {
// I could have called this without arguments like this:
// return internalAlgorithmAddNumbers();
// because the data needed to compute the result is in members.
return internalAlgorithmAddNumbers(a,b);
}
private:
int internalAlgorithmAddNumbers(int sum1, int sum2) { return sum1+sum2; }
};