Pull to refresh

Comments 3

PinnedPinned comments

Имхо, если говорить о Kotlin Contracts, то сильно не хватает ссылки на соответствующий KEEP

Итак, чем же замечательна функция-расширение? А тем, что, по сути своей, это обычный декоратор.

Этот инструмент является прямой реализацией переопределения методов паттерна проектирования Декоратор

Что характерно, в официальной доке прямо написано:

Kotlin provides the ability to extend a class or an interface with new functionality without having to inherit from the class or use design patterns such as Decorator

То есть это прям вообще не декоратор. Это просто трюк компилятора. Результат похож, но мало ли у чего результат похож, если под капотом разные механизмы.

Сначала на собесах повторяли мантру, что корутины это легковесные потоки. Теперь кто-то будет говорит, что расширение это декоратор.

Результат не просто похож, в доках прям написано - теперь можно обойтись без декоратора.

То есть расширения включают весь функционал декоратора и даже больше. Поэтому , в рамках определенной терминологии, в конкретном контексте мы можем относиться к нему, как к декоратору, с точки зрения основных функций декоратора.

Имхо, если говорить о Kotlin Contracts, то сильно не хватает ссылки на соответствующий KEEP

Sign up to leave a comment.

Articles