Цепочка методов - Method chaining
Эта статья нужны дополнительные цитаты для проверка.Май 2008 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Цепочка методов, также известный как идиома именованного параметра, является обычным синтаксис для вызова нескольких вызовов методов в объектно-ориентированные языки программирования. Каждый метод возвращает объект, позволяя объединить вызовы в один оператор, не требуя переменных для хранения промежуточных результатов.[1]
Обоснование
Локальная переменная декларации синтаксический сахар.[2]
Цепочка методов устраняет дополнительную переменную для каждого промежуточного шага. Разработчик избавлен от когнитивного бремени именования переменной и ее запоминания.
Объединение методов в цепочку именуется производством «крушения поезда» из-за увеличения числа методов, которые идут один за другим в одной строке, что происходит по мере того, как все больше методов связываются вместе.[3]
Похожий синтаксис каскадирование методов, где после вызова метода выражение оценивает текущий объект, а не возвращаемое значение метода. Каскадирование может быть реализовано с использованием цепочки методов, когда метод возвращает сам текущий объект. Каскадирование - ключевой метод в свободные интерфейсы, и поскольку цепочка широко реализована в объектно-ориентированных языках, в то время как каскадирование - нет, эта форма «каскадирование цепочкой путем возврата это"часто называют просто" цепочкой ". И цепочка, и каскадирование исходят от Болтовня язык.
Хотя цепочка является синтаксисом, она имеет семантические последствия, а именно требует, чтобы методы возвращали объект, и при реализации каскадирования через цепочку это должен быть текущий объект. Это предотвращает использование возвращаемого значения для других целей, например, для возврата значение ошибки.
Примеры
Типичный пример: iostream в C ++, где например <<
возвращает левый объект, разрешая цепочку.
Сравнивать:
а << б << c;
эквивалент:
а << б;а << c;
Другой пример в JavaScript использует встроенные методы Array:
кое-что .фильтр(Икс => Икс.считать > 10) .Сортировать((а, б) => а.считать - б.считать) .карта(Икс => Икс.имя)
Смотрите также
- Свободный интерфейс
- Конвейер (Unix)
- Вложенность (вычисления)
- Строитель шаблон
- Пирамида гибели (программирование)
Рекомендации
- ^ «Применение цепочки методов». http://firstclassthoughts.co.uk/: Первоклассные мысли. Архивировано из оригинал на 2011-02-22. Получено 2011-04-13.
Чтобы упростить повторяющиеся взаимодействия объектов с одним и тем же объектом, старый трюк Цепочка методов происхождение из мира Smalltalk должно быть принудительным. Идея состоит в том, чтобы позволить методам возвращаться
это
скорее, чемпустота
, особенно влияя нанабор()
иДобавить()
методы. Цепочка методов возникла во время стремления разработчиков Smalltalk минимизировать количество ключевых слов в языке, что привело к открытию, чтопустота
это ненужное ключевое слово !. - ^ «CMSC 631 - Анализ и понимание программы» (PDF).
• Синтаксический сахар для локальных объявлений - пусть x = e1 в e2 является сокращением от (λx.e2) e1
- ^ Мартин, Роберт Сесил (2008). Чистый код: руководство по созданию гибкого программного обеспечения. Prentice Hall. ISBN 0-13-235088-2.
- ^ Цепочка методов в PHP