HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>Domain Specific Language (Предметно-ориентированный язык) - язык, специализированный под конкретную область применения. Структура такого языка отражает специфику решаемых с его помощью задач. Яркий пример подобного языка - библиотека<a>jQuery</a>, с которой знакомо большинство программистов (или хотя бы слышали о ней). С ее помощью управляют отображением и поведением веб-страниц:</p>
1 <p>Domain Specific Language (Предметно-ориентированный язык) - язык, специализированный под конкретную область применения. Структура такого языка отражает специфику решаемых с его помощью задач. Яркий пример подобного языка - библиотека<a>jQuery</a>, с которой знакомо большинство программистов (или хотя бы слышали о ней). С ее помощью управляют отображением и поведением веб-страниц:</p>
2 <p>Здесь DSL создан с помощью<a>Текучего интерфейса (Fluent Interface)</a>. При таком способе организации кода, обработка выглядит как цепочка подряд идущих методов. На техническом уровне есть ровно два способа создать такой интерфейс.</p>
2 <p>Здесь DSL создан с помощью<a>Текучего интерфейса (Fluent Interface)</a>. При таком способе организации кода, обработка выглядит как цепочка подряд идущих методов. На техническом уровне есть ровно два способа создать такой интерфейс.</p>
3 <p>Первый способ основан на возврате this из методов, которые участвуют в построении цепочек. this - ссылка на тот объект, в контексте которого вызывается метод, а, следовательно, его можно возвращать как обычное значение.</p>
3 <p>Первый способ основан на возврате this из методов, которые участвуют в построении цепочек. this - ссылка на тот объект, в контексте которого вызывается метод, а, следовательно, его можно возвращать как обычное значение.</p>
4 <p>У этого способа есть один серьезный недостаток - объект изменяется. Это значит, что нельзя взять и просто так переиспользовать объект-коллекцию для разных выборок, потому что они начнут накладываться друг на друга.</p>
4 <p>У этого способа есть один серьезный недостаток - объект изменяется. Это значит, что нельзя взять и просто так переиспользовать объект-коллекцию для разных выборок, потому что они начнут накладываться друг на друга.</p>
5 <p>На практике часто используется другой подход, с которым мы уже познакомились в прошлом курсе. Все, что нужно сделать - добавить немного функциональности в ООП, то есть возвращать не this, а создавать новый объект того же типа с обновленной коллекцией.</p>
5 <p>На практике часто используется другой подход, с которым мы уже познакомились в прошлом курсе. Все, что нужно сделать - добавить немного функциональности в ООП, то есть возвращать не this, а создавать новый объект того же типа с обновленной коллекцией.</p>
6 <p>Теперь каждый вызов возвращает новый объект. Такой код значительно безопаснее в использовании и позволяет без проблем переиспользовать новые коллекции. Изменение одной не приведет к автоматическому изменению всех остальных.</p>
6 <p>Теперь каждый вызов возвращает новый объект. Такой код значительно безопаснее в использовании и позволяет без проблем переиспользовать новые коллекции. Изменение одной не приведет к автоматическому изменению всех остальных.</p>