Метод цепочка

Синтаксис программирования

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

Обоснование

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

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

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

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

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

Примеры

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

Сравнивать:

а << б << в ;    

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

а << б ; а << в ;    

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

что - то.фильтр ( x = > x.кол - во > 10 ) .сортировать ( ( a , b ) = > a.кол - во - b.кол - во ) .карта ( x = > x.имя )              

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

Ссылки

  1. ^ "Применение цепочки методов". Первоклассные мысли. Архивировано из оригинала 2011-02-22 . Получено 2011-04-13 . Для упрощения повторяющихся взаимодействий объектов с одним и тем же объектом следует применить старый трюк цепочки методов, берущий начало в мире Smalltalk. Идея состоит в том, чтобы позволить методам возвращать this вместо void, тем самым влияя особенно на set() и add() методы. Цепочка методов возникла во время стремления разработчиков Smalltalk минимизировать количество ключевых слов в языке, что привело к открытию того, что void является ненужным ключевым словом!.
  2. ^ "CMSC 631 – Анализ и понимание программ" (PDF) . • Синтаксический сахар для локальных объявлений - let x = e1 in e2 является сокращением от (λx.e2) e1
  3. ^ Мартин, Роберт Сесил (2008). Чистый код: Справочник по гибкому программному мастерству . Prentice Hall . ISBN 0-13-235088-2.
  • Создание DSL в Java с использованием концепции цепочки методов
  • Цепочка методов в PHP
Retrieved from "https://en.wikipedia.org/w/index.php?title=Method_chaining&oldid=1192822340"