Является ли метод jQuery цепочкой примеров свободного программирования?

Я новичок в JavaScript / jQuery, но когда я увидел примеры объединения методов, это сразу показалось мне знакомым. Другие интерфейсы, такие как LINQ, делают нечто подобное, когда тип возвращаемого значения набора методов совпадает с типом, с которым они работают (TweetSharp делает нечто очень похожее). Это пример свободного программирования? Многое из того, что я читал о jQuery, говорит о том, что другие библиотеки «позаимствовали» эту идею объединения методов - возникла ли эта идея с jQuery?


person James Cadd    schedule 03.08.2010    source источник
comment
Да, но я думаю, что этот метод существовал до jQuery. Но сейчас я не совсем понимаю, что вы имеете в виду под свободным программированием. Звучит больше как программирование на высокой скорости;)   -  person Felix Kling    schedule 03.08.2010


Ответы (3)


jQuery действительно сильно следует шаблону построителя / fluent interface, но он, конечно, не является пионером шаблона проектирования в целом. Другие библиотеки, вероятно, последовали за jQuery и позаимствовали его подход. Это просто слава jQuery, которая заставляет его выглядеть так, как будто он исходит из jQuery.

person BalusC    schedule 03.08.2010

Само по себе объединение в цепочку не обеспечивает плавного интерфейса. Термин "свободный интерфейс", по-видимому, популяризировал Мартин Фаулер, один из наиболее распространенных современные авторы по теории программного обеспечения (хотя и не он изобрел методику).

Фаулер поясняет, что цепочка методов просто относится к методам, которые возвращают ссылку на объект, в то время как свободный интерфейс больше похож на язык, специфичный для предметной области, и (в идеале) спроектирован так, чтобы поток был больше похож на естественный язык, чем на код.

person cbednarski    schedule 03.08.2010

JQuery определенно не изобретал связывание методов; это уже было возможно в JavaScript и многих других языках.

Возможно, цепочка методов была узаконена в глазах многих людей с помощью JQuery. Многие программисты на Java по-прежнему настаивают на том, что функции объекта должны возвращать только другие объекты, но не сам объект. Насколько я помню, 10 лет назад меня исключили из списка рассылки Java за то, что я посоветовал обратное :)

person user409952    schedule 03.08.2010