2013-02-22 6 views
1

Это не вопрос программирования, а скорее вопрос проектирования.cmdlet design: параметр pass in: конвейер или встроенный параметр?

Предполагая, что данные хранятся в json.

Например, Get-Person "John" | Get-Employer или Get-Employer -Person "John"

Оба способа выглядит вернуть работодатель Джона, бывший один использует трубопровод, а затем один использует встроенный параметр. Меня иногда путают: в чем преимущество и недостаток каждого? Когда вы, ребята, проектируете, каково ваше предпочтение использовать каждый из них?

Для меня единственная причина, по которой я пришел с использованием конвейера, заключается в том, что он сохраняет нас с использованием переменных, если значение параметра необходимо оценить.

У кого-нибудь есть мысли по этому вопросу?

+0

Как сказано, хороший дизайн функции может обрабатывать обе, чтобы пользователь сам мог выбирать то, что ему нравится. Однако, как FYI, ваши примеры не равны. В первом вы передаете объект (я бы предположил, что это объект «человек» для человека «john»), а второй - только его имя. '' Джон "| Get-Employer' будет правильной альтернативой –

+0

Я согласен с @Graimer. Как потребитель командлетов, я хочу это в обоих направлениях - позвольте мне передать единый/набор значений, когда это необходимо, или канал в коллекции (или единственном значении) из другого источника. Каждый метод будет полезен в различных ситуациях. – alroc

ответ

2

Нет причин, по которым вам нужно выбрать тот или иной. С соответствующими атрибутами параметров и конструкцией функций (используйте начальные/процессные/конечные блоки) вы можете разрешить обе опции.

+0

Вы прямо здесь .. – jamesdeath123

 Смежные вопросы

  • Нет связанных вопросов^_^