Цепочка методов - Method chaining

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

Обоснование

Локальная переменная декларации синтаксический сахар.[2]

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

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

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

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

Примеры

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

Сравнивать:

а << б << c;

эквивалент:

а << б;а << c;

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

кое-что  .фильтр(Икс => Икс.считать > 10)  .Сортировать((а, б) => а.считать - б.считать)  .карта(Икс => Икс.имя)

Смотрите также

Рекомендации

[4]

  1. ^ «Применение цепочки методов». http://firstclassthoughts.co.uk/: Первоклассные мысли. Архивировано из оригинал на 2011-02-22. Получено 2011-04-13. Чтобы упростить повторяющиеся взаимодействия объектов с одним и тем же объектом, старый трюк Цепочка методов происхождение из мира Smalltalk должно быть принудительным. Идея состоит в том, чтобы позволить методам возвращаться это скорее, чем пустота, особенно влияя на набор() и Добавить() методы. Цепочка методов возникла во время стремления разработчиков Smalltalk минимизировать количество ключевых слов в языке, что привело к открытию, что пустота это ненужное ключевое слово !.
  2. ^ «CMSC 631 - Анализ и понимание программы» (PDF). • Синтаксический сахар для локальных объявлений - пусть x = e1 в e2 является сокращением от (λx.e2) e1
  3. ^ Мартин, Роберт Сесил (2008). Чистый код: руководство по созданию гибкого программного обеспечения. Prentice Hall. ISBN  0-13-235088-2.
  4. ^ Цепочка методов в PHP

внешняя ссылка