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