Jump to content

Цепочка методов

Цепочка методов — это общий синтаксис для вызова нескольких методов в объектно-ориентированных языках программирования . Каждый метод возвращает объект, что позволяет объединить вызовы в одну инструкцию без необходимости использования переменных для хранения промежуточных результатов. [1]

Обоснование

[ редактировать ]

локальных переменных Объявления — это синтаксический сахар . [2]

Цепочка методов исключает дополнительную переменную для каждого промежуточного шага. Разработчик избавлен от когнитивной нагрузки, связанной с присвоением имени переменной и ее запоминанием.

Цепочку методов называют «крушением поезда» из-за увеличения количества методов, идущих один за другим в одной строке, что происходит по мере того, как все больше методов объединяются в цепочку. [3]

Аналогичным синтаксисом является каскадирование методов , где после вызова метода выражение оценивается как текущий объект, а не возвращаемое значение метода. Каскадирование можно реализовать с помощью цепочки методов, заставив метод возвращать сам текущий объект . Каскадирование — ключевой метод в Fluent-интерфейсах , и поскольку цепочка широко реализована в объектно-ориентированных языках, а каскадирование — нет, эта форма «каскадирования за цепочкой путем возврата» это часто называют просто «связыванием». И связывание, и каскадирование пришли из языка Smalltalk .

Хотя цепочка является синтаксисом, она имеет семантические последствия, а именно, требует, чтобы методы возвращали объект, и при реализации каскадирования через цепочку это должен быть текущий объект. Это предотвращает использование возвращаемого значения для каких-либо других целей, например, для возврата значения ошибки .

Типичным примером является iostream в C++ , где, например, << возвращает левый объект, позволяя создавать цепочки.

Сравнивать:

a << b << c;

эквивалентно:

a << b;
a << c;

Другой пример в JavaScript использует встроенные методы Array:

somethings
  .filter(x => x.count > 10)
  .sort((a, b) => a.count - b.count)
  .map(x => x.name)

См. также

[ редактировать ]
  1. ^ «Применение цепочки методов» . Первоклассные мысли. Архивировано из оригинала 22 февраля 2011 г. Проверено 13 апреля 2011 г. Чтобы упростить повторяющиеся взаимодействия объектов с одним и тем же объектом, следует применить старый трюк « Сцепление методов», зародившийся в мире Smalltalk. Идея состоит в том, чтобы позволить методам возвращать this скорее, чем void, тем самым особенно влияя set() и add() методы. Цепочка методов возникла, когда разработчики Smalltalk стремились минимизировать количество ключевых слов в языке, что привело к открытию, что void это ненужное ключевое слово!.
  2. ^ «CMSC 631 – Анализ и понимание программы» (PDF) . • Синтаксический сахар для локальных объявлений — пусть x = e1 в e2 является сокращением от (λx.e2) e1.
  3. ^ Мартин, Роберт Сесил (2008). Чистый код: Справочник по гибкому программному обеспечению . Прентис Холл . ISBN  0-13-235088-2 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 0c9ca0ed41db30316aaadaa064f011b5__1704022320
URL1:https://arc.ask3.ru/arc/aa/0c/b5/0c9ca0ed41db30316aaadaa064f011b5.html
Заголовок, (Title) документа по адресу, URL1:
Method chaining - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)