Найти в Дзене
Паттерны

Паттерны

Статьи про различные паттерны
подборка · 7 материалов
Паттерн "Прокси"
Паттерн Прокси (структурный паттерн) может быть полезен, когда нам нужно управлять доступом к котику объекту, добавлять дополнительную логику при доступе к нему или делать отложенную инициализацию объекта (в котлин есть by lazy). Предположим, у нас есть класс котика, который умеет мяукать. Мы можем создать прокси-класс CatProxy, который будет добавлять дополнительную логику. Тут же можно контролировать доступ к котику. Например, мяукать, только если пользователь авторизован и является хозяином котика...
Паттерн "Мост" в андроиде
Паттерн "Мост" — это метод организации кода, который помогает разделить "что делать" от "как делать". Иначе говоря, этот паттерн про разделение абстракции и реализации. Пример в Android Это пример из реальной жизни и лет пять назад такое можно было встретить в продовом коде (я видела). Допустим, у нас есть разные фрагменты, которые должны передавать данные в активити. Мы как раз можем использовать паттерн "Мост". Код находится здесь: https://github.com/Ladgertha/patterns/commit/5499e8481ddfcd0064379daa1de7555f819f94c8...
100 читали · 2 года назад
Паттерн "Прототип". Что это вообще такое?
Давайте представим, что у нас есть Барсик. И он нам настолько сильно нравится, что мы хотим создать полную его копию. В реальной жизни, конечно, мы так не можем сделать. Но вот в коде мы можем создать новый объект класса котика и вручную указать новому коту все параметры и их значения, которые были у Барсика. Звучит отлично, но проблема в том, что у Барсика какие-то поля могут быть приватными и мы не можем получить их значения. Плюс, иногда мы вообще не имеем доступа к Барсику и общаемся с ним через интерфейсы (например, когда используем сторонние библиотеки)...
Паттерн Builder
Во время разработки мы часто сталкиваемся с созданием сложных котиков объектов, в которых может быть десяток (а то и два) различных свойств. Иногда создание котика может выглядеть довольно объемно, а некоторые параметры вообще могут быть опциональными или иметь какие-то значения по умолчанию, но мы всё равно их прописываем каждый раз. В таких случаях как раз поможет паттерн Builder. Основная идея: паттерн позволяет пошагово создать сложного котика, указав только нужные параметры. Сам паттерн разделяет создание котика и самого котика...
Что такое "Композитный паттерн" и как его использовать?
Композитный паттерн (Composite pattern) — это паттерн проектирования, который позволяет работать с группой котиков объектов так же, как с одиночным котиком объектом. Этот паттерн объединяет котиков в древовидную структуру и позволяет клиентам единообразно работать с отдельными самостоятельными котами и группами котиков. Допустим, у нас есть класс Cat, который представляет собой одиночного кота. Теперь представим, что мы хотим создать иерархию котов, чтобы работать с ними как с единым объектом. Для...
Паттерн "Адаптер"
Это еще один простой структурный паттерн. Он помогает в ситуациях, когда данные на выходе из одной системы не совпадают с данными для входа в другой системе. Если отойти от разработки, то мне было проще всего понять на примере с usb-проводами, которые многие используют для зарядки телефонов. У нас есть ноутбук и телефон и с каждой стороны разные типы разъемов. Наш провод — это как раз и есть адаптер, который помогает совместить два несовместимых устройства (ноутбук и телефон). И в этом паттерне очень...