CorotineScope и Job - это не одно и то же?
Например, под отладчиком видно, что эти интерфейсы реализует один и тот же объект.
И еще они выполняют одну и ту же задачу: образуют дерево structured concurrency, которое можно отменять со всеми потомками.
И еще CorotineScope лазит в свой контекст в поисках Job.
Короче такое ощущение, что это две стороны одной медали, но почему тогда их две сущности, а не одна?
Ну дык composition over inheritance и SRP, вероятно. Зачем навешивать на Job ещё и менеджмент скоупа со всеми билдерами, если это звучит как отдельная обязанность, которую можно отдельной сущностью с понятной задачей сделать? Это исключительно моё предположение, конечно. Ну и да, скоуп -- интерфейс, который могут реализовывать пользовательские классы с чётко определённым лайфсайклом. Потому можно сделать, к примеру, активити, которая наследуется от абстрактной активити в платформе и дополнительно реализует скоуп, предоставляя с помощью переопределённой проперти джобу.
Обсуждают сегодня