Лучше ли писать методы, которые не принимают аргументов и имеют побочные эффекты, меняют состояние объекта или методы с одним аргументом, берущие аргумент и обрабатывающие его?Если вторая альтернатива предпочтительнее, лучше возвращать входной аргумент явным образом или просто обрабатывать его, так как предполагается, что вызывающая сторона имеет ссылку на него.
Если быть более точным: я обрабатываю XML и получаюпрочитайте первые главы Чистого кодового сборника Я пытаюсь разделить метод Большой Обработки на множество маленьких, чтобы этот метод можно было прочитать как историю, в следующих строках:
cleanHeader();
extractMetaInfo();
appendStuff();
и т. Д., Где все эти методы работают с XML-документом, хранящимся в качестве члена.
ИМХО, наилучшие практики сокращения количества параметров по сравнению с отсутствием побочных эффектов здесь, похоже, противоречат друг другу.Было бы лучше написать следующее?
doc = cleanHeader(doc);
doc = extractMetaInfo(doc);
doc = appendStuff(doc);
Есть ли определенное «право» в этом вопросе?От какого контекста зависит определенный ответ?Или есть третий вариант, о котором я не задумывался?
РЕДАКТИРОВАТЬ: нашел связанный вопрос с противоречивыми ответами.Хотите уточнить?