Мне было интересно обеспечить обратную совместимость с помощью необязательных параметров.
В моей программе есть интерфейс с функцией, которая используется во всей моей программе, а также во многих юнит-тестах. Для некоторых новых функций в эту функцию необходимо передать логическое значение, которое изменит ее поведение, если установлено значение false
. Если вы передадите true
, вы получите то же поведение, что и раньше.
Теперь мне нужно передать true
везде, где в моем текущем коде я вызывал эту функцию раньше. Вот почему я подумал: «Хорошо, я просто поставил true
в качестве значения логического значения по умолчанию. Тогда мне нужно передать false
только в нескольких новых местах, где мне нужно новое поведение».
Однако я чувствую, что моя мотивация сделать интерфейс таким образом заключается в том, чтобы теперь меньше писать код. Обычно, когда это единственная мотивация, я думаю, что это кратчайший путь, который, вероятно, укусит меня позже. Я не могу придумать ничего, что позже вызовет проблемы, поэтому я публикую этот вопрос здесь.
Рядом с моей ситуацией, как я описал выше, это хорошая идея вообще сделать новый параметр необязательным для обратной совместимости (например, в интерфейсах, которые используются третьими сторонами)?
Заранее спасибо.