Я заметил, что даже при соблюдении принципа единой ответственности OOD иногда классы все равно становятся большими. Иногда доступ к переменным-членам непосредственно в методах кажется глобальным состоянием, и в текущей области существует множество вещей. Просто взглянув на метод, который работает в настоящее время, уже невозможно определить, откуда берутся отдельные переменные, доступные в текущей области.
В последнее время, работая вместе с другом, я понял, что пишу гораздо более подробный код, чем он, потому что я все еще передаю переменные-члены в качестве параметров в каждый отдельный метод.
Это плохая практика?
редактировать :пример:
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; }
};