Swift 2 Design Patterns - Урок 1 - Цепочка Обязанностей // Chain of Responsibility //Xcode HD
Курс по паттернам на Swift 2 на русском языке от http://vk.com/JustDev Учитесь вместе с нами, общайтесь, задавайте вопросы. Сообщество Just Dev приветствует Вас! Цепочка обязанностей Назначение паттерна? * Паттерн Chain of Responsibility (Цепочка обязянностей) позволяет избежать жесткой зависимости отправителя запроса от его получателя (т.е. обеспечивается слабая связанность компонентов системы), при этом запрос может быть обработан несколькими объектами. * Объекты-получатели связываются в цепочку. Запрос передается по этой цепочке, пока не будет обработан. * Вводит конвейерную обработку для запроса с множеством возможных обработчиков. Многие зададут вопрос, а что такое запрос? В данном контексте запрос - это любая задача, которая должна быть обработана несколькими объектами (или одним если есть только один обработчик). Например мы должны записать сообщение в лог - то это конкретная задача т.е. запрос. Получатель в таком случае - это тот класс, который будет обрабатывать запрос (задачу). Как было описано выше суть паттерна в том, чтобы уменьшить связанность компонентов системы т.е. сделать так, чтобы при отправке запроса мы не знали какой конкретно объект получатель (компонент) будет его обрабатывать, но в тоже время он должен быть корректно обработан даже, если обработчик не найден. Пример паттерна Chain of Responsibility Паттерн Chain of Responsibility позволяет избежать привязки отправителя запроса к его получателю, давая шанс обработать запрос нескольким получателям. Банкомат использует Chain of Responsibility в механизме выдачи денег. Использование паттерна Chain of Responsibility * Базовый класс имеет указатель на "следующий обработчик". * Каждый производный класс реализует свой вклад в обработку запроса. * Если запрос должен быть "передан дальше", то производный класс "вызывает" базовый класс, который с помощью указателя делегирует запрос далее. * Клиент (или третья сторона) создает цепочку получателей (которая может иметь ссылку с последнего узла на корневой узел). * Клиент передает каждый запрос в начало цепочки. * Рекурсивное делегирование создает иллюзию волшебства. Все материалы из этого курса тут - https://www.dropbox.com/sh/2g380gwfttnyv21/AAA2ZDVh-xHCeiOtO0OOgB8va?dl=0 Дополнительные материалы по курсу в картинках тут - https://drive.google.com/folderview?id=0Bx5chY2_UJgMNWtqREtFWHRZc0E&usp=sharing Наши АКТУАЛЬНЫЕ курсы! Swift 2 Basics //основы языка Swift https://vk.com/justerich?w=wall311091521_42%2Fall Swift 2 iOS 9 SDK //Основной курс - создаем приложение от прототипа до App Store https://www.youtube.com/playlist?list=PLsp11QxKy7ujHyxFZY2CGHPxNbrCYx8Ga Swift 2 Design Patterns //Паттерны на языке Swift на примерах https://www.youtube.com/playlist?list=PLsp11QxKy7uiNQNRtauHLc4TIsO4ANQNr
Похожие видео
Показать еще