Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Что такое паттерн Наблюдатель (Observer)?
Паттерн Наблюдатель определяет зависимость "один ко многим", где изменение состояния одного объекта автоматически уведомляет все связанные объекты. Это полезно для реализации системы событий и реакций.
Как описать паттерн Наблюдатель (Observer)?
Паттерн Наблюдатель — это поведенческий паттерн проектирования, в котором объект (субъект) уведомляет другие объекты (наблюдатели) о изменении своего состояния. Это полезно для реализации систем обработки событий. В PHP паттерн Наблюдатель может быть реализован с помощью интерфейсов SplObserver и SplSubject из стандартной библиотеки.
Почему MutationObserver использует микротаски в Event Loop?
MutationObserver выполняет свои колбэки в микротасках, чтобы изменения DOM обрабатывались сразу после текущей задачи, но до рендеринга и макротасков. Это позволяет быстро реагировать на изменения, сохраняя высокую производительность.
Являются ли колбэки MutationObserver микротасками или макротасками? Почему?
Колбэки MutationObserver являются микротасками (microtasks). Они выполняются в той же фазе event loop, что и Promise, но после них. Это обеспечивает высокий приоритет выполнения и гарантирует, что наблюдения за изменениями DOM обрабатываются до следующего рендеринга браузера.
Что такое паттерн Observer?
Observer — это паттерн, при котором один объект уведомляет другие объекты об изменениях своего состояния. Подписчики не опрашивают источник, а получают события автоматически. Это снижает связанность между объектами. Источник не знает деталей реализации подписчиков. Такой подход широко используется в iOS.
В чём разница между Observer и Observable?
Как можно реализовать паттерн Observer базовыми средствами Swift?
Как Observer подписывается на события Observable?
Какие примеры Observer можно найти в UIKit?
В чём суть паттерна Observer?
Рейтинг:
3
Сложность:
4
Observer — это объект, который получает уведомления об изменениях. Observable — это объект, который хранит состояние и рассылает уведомления. Observer подписывается на события Observable. Observable не знает деталей реализации Observer. Это разделение ролей делает систему гибкой.
Рейтинг:
5
Сложность:
6
Паттерн Observer в Swift можно реализовать с помощью протоколов, замыканий или NotificationCenter. Observable хранит список подписчиков и уведомляет их при изменениях. Observer реализует протокол или передаёт замыкание. Такой подход не требует дополнительных библиотек. Выбор способа зависит от требований к связанности и жизненному циклу.
Рейтинг:
4
Сложность:
4
Observer подписывается на события, передавая себя Observable или регистрируя обработчик. Это может быть добавление в список подписчиков, установка замыкания или регистрация в NotificationCenter. После подписки Observer начинает получать уведомления при изменениях. Важно корректно управлять временем жизни подписки. Неправильная подписка может привести к утечкам памяти.
Рейтинг:
5
Сложность:
4
В UIKit паттерн Observer используется очень часто. Самые известные примеры — NotificationCenter, target–action, delegate и KVO. Во всех этих случаях один объект уведомляет другие об изменениях или событиях. Подписчики реагируют на события, не зная внутренней реализации источника. Это снижает связанность компонентов.
Рейтинг:
4
Сложность:
5
Паттерн Observer описывает зависимость «один ко многим». Когда состояние объекта меняется, все подписчики получают уведомление. Это позволяет отделить источник событий от их обработки. Паттерн широко используется в UI и событийных системах.
Рейтинг:
3
Сложность:
8
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
8
Рейтинг:
1
Сложность:
9
Рейтинг:
5
Сложность:
5