Я поддерживаю Redux. Мне кажется, хорошо, если предположить, что createMedia()
сам является создателем громовых действий, который возвращает обещание.
Тем не менее, я также рекомендую переместить это определение функции в автономный режим и использовать форму «сокращенной записи объекта» из mapDispatch
, а не форму функции.
Код собирается использоваться другими языками? Если так, это качает баланс к перегрузкам при тихой мысли об ответе Hamish. В частности, C# не поддерживает дополнительные параметры - еще...
По общему признанию это на самом деле не предотвратило бы кого-то использующего Ваш код от C#, это просто могла бы быть боль для них.
Если существует много параметров, и они логически представляют что-то, Вы могли бы хотеть рассмотреть инкапсуляцию их вместе, таким же образом это Process
работы с ProcessStartInfo
. Это особенно хорошо от C#, должного возразить инициализаторам.
Если это для конструкции, Вы могли бы также рассмотреть шаблон разработчика как вариант этого. Например, в Буферах Протокола я могу сделать что-то как:
Person jon = new Person.Builder { Name="Jon", Age=32,
Spouse="Holly", Kids=3 }.Build();
который заканчивает тем, что был очень читаем, все еще создавая человека сразу (в одном выражении, и не имея необходимость видоизменять человека самом - действительно тип сообщения неизменен; это - только разработчик, который не является).
если параметры являются дополнительными (т.е. перегрузки являются подмножеством параметров, которые полная подпись процедуры принимает), затем или дополнительные параметры, по умолчанию имели бы больше смысла.
Если перегрузка позволяет другой тип для параметра или является семантически другим параметром, который будет интерпретироваться по-другому стандартной программой затем, перегрузки имели бы больше смысла.
FYI
Если вы хотите добавить параметр к функции или методу, который вызывается из других сборок, то:
Вы можете перегрузить, создав дополнительную функцию с дополнительным параметром .
Или вы можете добавить необязательный параметр, НО: вам нужно перекомпилировать все сборки, которые вызывают эту функцию, даже если им не нужно использовать новый необязательный параметр! Обычно люди этого не ожидают (особенно те, кто привык к тому, как работает VB6). По сути, вы не можете добавить в функцию новый необязательный параметр и ожидать, что он будет полностью обратно совместим. Кроме того, насколько я понимаю, если вы измените значение по умолчанию, вам нужно будет перестроить все вызывающие сборки, чтобы изменение сработало.