Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Помимо установления значения функция может выполнять и другие действия, например, высчитывать какие-то внутренние состояния или переменные
$user->setEmail('email@example.com');
$user->updateEmail('email@example.com');
// Или лучше даже так, например:
$transport = new SmtpTransport();
$user->updateEmail('email@example.com', $transport);
Позже я нашёл статью про Fluent Interface, где мне попался более приятный глазу пример на python.
@property), поэтому геттерам-сеттерам в нём нет оправданий. Хотя геттеры-сеттеры − это вообще-то антипаттерн для любого языка, даже для Java. Тем более в таком количестве, чтобы их чейнить ради читаемости. Тут проблемы в проектировании, а не в читаемости.Нет, суть билдера вообще не в этом. Fluent — это сахар. А суть в создании иммутабельного объекта из разрозненных данных.
ocramius.github.io/blog/fluent-interfaces-are-evil
Fluent-сеттеры придуманы, чтобы код стал понятнее и чище.спорное утверждение.
Что такое fluent-сеттер