Метод каскадного кодування дієти

Каскадний метод

У Васудєва Рама є помітна публікація про ланцюжок/каскадування методів, яку я підібрав із планети python, в якій він в основному аргументує використання каскаду методів. Я збираюся не погодитися. По суті, я просто не розумію жодної переваги використання каскаду. Хоча це приємний допис і містить деякі посилання на інші каскадні посилання на методи.

каскадного

Мережа ланцюгів - це написання декількох викликів методів безпосередньо один за одним, як правило, в одному рядку, наприклад (для прикладу Васудева):

Каскадування - це конкретний випадок ланцюжка, при якому кожен проміжний об'єкт є одним і тим же об'єктом. Для досягнення цієї смуги потрібно повернути self (у Python, або це в інших об'єктно-орієнтованих мовах).

Ось перший приклад Васудева:

Скажімо, у нас є клас Foo, який містить два методи, bar і baz. Створюємо екземпляр класу Foo:

Без ланцюжка методів, щоб по черзі викликати і bar, і baz, на об’єкті foo, ми зробили б це:

За допомогою ланцюжка методів ми можемо:

Отже, претензія на каскадування методів тоді така:

Однією з переваг ланцюгової послідовності методів є те, що вона зменшує кількість разів, коли вам доводиться використовувати ім’я об’єкта: лише один раз у Фрагменті 2 вище та двічі у Фрагменті 1; і ця різниця збільшиться, коли на той самий об'єкт буде більше викликів методів. Тим самим це також незначно зменшує кількість коду, який потрібно читати, розуміти, тестувати, налагоджувати та підтримувати, загалом. Не великі переваги, але можуть бути корисними.