xTr1m
29 / 29 / 8
Регистрация: 06.03.2013
Сообщений: 157
|
|
#1 | |
Рефакторинг: функция с большим количеством параметров - C++10.08.2016, 15:45. Просмотров 366. Ответов 2
Метки нет Все метки)
(
День добрый. Скажите плз, гуру рефакторинга. Вот есть функция и в нее передаётся туча параметров. Как лучше исправить ситуацию? На ум приходит
а) Создание некой структуры, которая будет содержать все эти поля. Заполняем структуру и передаём ее в фукнцию б) Большую часть переменных сделать полями класса, к которому относится функция. Мне, честно, не нравится ни первый, ни второй вариант. На ум приходит лишь какой-то совсем аццкий рефакторинг, который бы поменял функцию целиком. А какие еще бывают варианты
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
10.08.2016, 15:45 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Рефакторинг: функция с большим количеством параметров (C++):
2
Функция с переменным числом параметров - C++ Архитектура и рефакторинг: построение системы ECS - C++
Сделать ProgressBar при зависании формы (работа с большим количеством данных) - C++ Builder |
Devenmort
|
|
10.08.2016, 17:19 | #2 |
Вариант А особо ничего не меняет - Только дополнительные действия по формированию структуры перед посылкой все тех же данных, максимум, чего добиваетесь - эстетическое удовольствие от вида функции, но и оно иллюзорно, т.к. чтобы с ней работать придется проделывать больше действий, чем просто прописать аргументы.
Вариант Б - возможный вариант, но все зависит от контекста использования, и того являются ли эти значения частью класса логически. Если дадите более подробную информацию по методу, вероятность ответа вам повысится. (Кстати, о том, что функция - это функция-член класса сразу не ясно только по слову "функция", слово "метод" в данном случае уместней)
0
|
Kastaneda
Jesus loves me
![]() |
|
10.08.2016, 18:31 | #3 |
Можно еще функцию разбить на несколько. Я только в одном проекте видел реальную необходимость иметь очень много параметров, это был математический проект и там по-другому реально было никак. В других случая можно подумать о том, как разделить ф-цию на мелкие с небольшим кол-вом аргументов.
0
|
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
10.08.2016, 18:31 |
Привет! Вот еще темы с ответами:
3
Функции с переменным количеством параметров - C++ Builder Функция с переменным числом параметров - C++ Builder запрос с большим количеством параметров - PHP БД .NET 4.x Как лучше всего работать с большим количеством параметров для класса? - C# Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |