Доступ к переменным-членам напрямую или передача в качестве параметра?

Я заметил, что даже при соблюдении принципа единой ответственности 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; }
};
10
задан Tom 4 August 2012 в 17:47
поделиться