Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
xTr1m
29 / 29 / 8
Регистрация: 06.03.2013
Сообщений: 151
#1

Рефакторинг: функция с большим количеством параметров - C++

10.08.2016, 15:45. Просмотров 258. Ответов 2
Метки нет (Все метки)

День добрый. Скажите плз, гуру рефакторинга. Вот есть функция и в нее передаётся туча параметров. Как лучше исправить ситуацию? На ум приходит

а) Создание некой структуры, которая будет содержать все эти поля. Заполняем структуру и передаём ее в фукнцию
б) Большую часть переменных сделать полями класса, к которому относится функция.

Мне, честно, не нравится ни первый, ни второй вариант. На ум приходит лишь какой-то совсем аццкий рефакторинг, который бы поменял функцию целиком. А какие еще бывают варианты
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.08.2016, 15:45     Рефакторинг: функция с большим количеством параметров
Посмотрите здесь:

Visual C++ Работа с большим количеством COM портов.
Удалить строку с самым большим количеством слов C++
C++ Функция с переменным количеством параметров-оъектов
Функция с изменяющимся количеством параметров C++
C++ Builder Работа с большим количеством динамически созданных компонентов.
C++ Динамический массив с большим количеством элементов
C++ Алгоритм быстрой сортировки не работает с большим количеством чисел
Функция с переменным количеством параметров C++
C++ Применение массивов случайных чисел с большим количеством элементов
Функция с переменным количеством параметров C++
Определить номер строки матрицы с наиболее большим количеством нулей C++
C++ Функция суммы с переменным количеством параметров

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Devenmort
9 / 9 / 9
Регистрация: 04.08.2016
Сообщений: 24
Завершенные тесты: 1
10.08.2016, 17:19     Рефакторинг: функция с большим количеством параметров #2
Вариант А особо ничего не меняет - Только дополнительные действия по формированию структуры перед посылкой все тех же данных, максимум, чего добиваетесь - эстетическое удовольствие от вида функции, но и оно иллюзорно, т.к. чтобы с ней работать придется проделывать больше действий, чем просто прописать аргументы.
Вариант Б - возможный вариант, но все зависит от контекста использования, и того являются ли эти значения частью класса логически.
Если дадите более подробную информацию по методу, вероятность ответа вам повысится. (Кстати, о том, что функция - это функция-член класса сразу не ясно только по слову "функция", слово "метод" в данном случае уместней)
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4253 / 2785 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
10.08.2016, 18:31     Рефакторинг: функция с большим количеством параметров #3
Можно еще функцию разбить на несколько. Я только в одном проекте видел реальную необходимость иметь очень много параметров, это был математический проект и там по-другому реально было никак. В других случая можно подумать о том, как разделить ф-цию на мелкие с небольшим кол-вом аргументов.
Yandex
Объявления
10.08.2016, 18:31     Рефакторинг: функция с большим количеством параметров
Ответ Создать тему
Опции темы

Текущее время: 20:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru