2016-09-15 9 views
0

Этот вопрос больше подходит к соглашению или подходу. Итак, у меня есть сценарий, в котором есть четыре поля ввода текста на представлении в двух парах, позволяет сказать, что они являются:Множество аргументов в методе против конкретных аргументов

  • первая пара: FirstName и LastName
  • второй пары: Департамент и обозначение

и есть только одна кнопка поиска. Здесь, если пользователь начинает вводить первую пару, вторая пара отключена/не редактируется и наоборот. Когда пользователь нажимает кнопку поиска, запрос переходит к некоторому контроллеру/сервлету/действию, Теперь, в моей бизнес-логике, каким должен быть подход к методу записи для этого поиска.

  1. напишите один метод для всех четырех полей, затем проверьте значение аргументов и определите, что будет выполнять запрос.
  2. пишите два метода только с указанными парными параметрами.
+1

Пожалуйста, покажите нам, что вы пробовали до сих пор. Stack Overflow - это не служба написания кода, но люди готовы помочь вам, если вы хотя бы попытаетесь решить проблему самостоятельно. См. Также [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve) и [Как задать хороший вопрос?] (Http://stackoverflow.com/help/как к спрашивать). – sarcom

+0

Поскольку я исправлен в самой первой строке, это больше похоже на вопрос о кодировании кода. Вот почему я не могу показать вам какой-либо код. Что касается усилий и исследований, вы можете увидеть два пункта выше. – prisi

ответ

1

Чем меньше аргументов, тем лучше (если ваша школа «Чистый код», как учит Роберт Мартин, например).

В вашем случае: не лучший вариант для передачи какой-либо карты? Ключами могут быть различные категории поиска; и значения будут соответствующими значениями. Таким образом, всегда есть только один параметр; и ваша бизнес-логика написана с самого начала, чтобы просто заниматься всеми картографическими записями?

Таким образом, вы всегда можете добавлять/удалять категории без изменения интерфейса.

РЕДАКТИРОВАТЬ: как вы все еще спрашиваете о «концептуальной» функции 2 vs 4; для этого я бы предложил: провести некоторые исследования; вы можете начать изучение here!

+0

Отлично ... !!! – prisi

+0

Но если вам не разрешено использовать какую-либо коллекцию или контейнер, как предложил @ benjamin-judas, то что бы вы предпочли и почему? – prisi

+0

Должен признаться: я не понимаю ваш комментарий. Если вы ставите искусственные ограничения на проблемы, все становится намного сложнее. Вы видите, у вас есть свой «контекст», со всеми слоями. Это очень просто: если вы используете какую-либо фиксированную структуру, то любое изменение может означать изменение кода. Другими словами: в других сценариях может возникнуть смысл задавать такие вопросы (2 шт. Или 4 или что-то еще); но не здесь. Итак, по существу: я не могу ответить на этот комментарий; мой мозг любезно отказывается определять, что хуже; «вредители или холеры». Но я обновил свой ответ с некоторыми окончательными мыслями по этому поводу. – GhostCat

0

Номер один является наихудшим решением imho. Я бы написал простой контейнер для четырех значений и передал этот контейнер одной конкретной функции. Таким образом, вы можете поместить логику проверки в этот контейнер, и функция просто выполняет свою работу.