copal: или я плохо объясняю или Вы не хотите меня понять)
Смотрите: есть объект фирмы и объект юзера. Мне нужно сделать метод add($user_id), который будет делать связь между компанией и пользователем, например добавление сотрудника в компанию. В разных частях кода мне по разному удобно использовать, либо объект add(User $user) либо только его id, например id пришел через api и нет смысла инициализировать целую модель, которая потребует запроса в БД. Итого мне было бы неплохо иметь 2 метода
Что-то типа такого. Можно назвать кучей разных названий, которые просто транслируют в базовый. Или можно воспользоваться перегрузкой. Которая по сути делает это за нас. Декларативный подход.
copal: перегрузка нужна чтобы убрать дублирующий код. 5 методов, которые делают абсолютно одно и тоже как то не очень вариант. Который у меня в принципе сейчас и есть. Если вы не понимаете суть синтаксического сахара, то это не означает что это треш.
ThunderCat: моя задача решается просто нагромождением методов, которым в силу их схожести трудно придумывать названия) Например getSuccessMsg($user_id) и getSuccesstext($user_id, $type) Которые по сути делают одно и тоже, но второй лейбл еще подклеивает. И родителя изменять не хочется, он уже давно работает и покрыт тестами. Просто в java это удобно, и я думал тут такое же поискать.
Но если следовать принципам SOLID, то нарушается сразу два из них. Это и внесение изменений туда, где они не нужны, и в добавок у меня в классе-родителе будет параметр, которые не используется. И который скорее всего кто-то по неосторожности выпилит потом, потому что IDE будет показывает его как unuser.
<script type="text/javascript">
// а тут какой-то код
</script>
Я же видел в гугловских библиотеках смешанные варианты, когда одной парой тегов и файл подключают и еще внутри код пишут. Вот такого нигде не видел в книгах. Именно это и вызывает вопрос зачем так делать?
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.