aleksey-pro / js-patterns-youtube

JavaScript Patterns Demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Позволяют организовать код в ООП стиле, когда необходимо взаимодействие классов.

https://www.youtube.com/watch?v=YJVj4XNASDk

  1. Паттерны создания новых классов

КОНСТРУКТОР - создание нового класса

ФАБРИКА - позволяет создавать класс, который создает данные, беря подходящий для этого класс. Используем, когда есть несколько классов со схожей функциональностью, но при этом меняется один из входных даннных.

ПРОТОТИП - используется для генерации объектов на основе других объектов, когда один из полей объекта должен быть уникальным или динамическим.

СИНГЛТОН - если в приложении м.б. только 1 единственный класс. И при каждом создании его инстанса, мы будет всегда возвращать данные, переданные в первый инстанс. Например, класс для соединения с БД.

  1. Структурные - для работы с уже существующими классами.

АДАПТЕР - позволяет интегрировать старый и новый интерфейс, не ломая приложение. Путём комбинирования функциональности. Например, если они делают одно и то же, но по разному. Позволяет работать с версиями API.

ДЕКОРАТОР - функции, принимающие инстанс класса, модифицирующий его и возвращающий его обратно. Позволяет дополнить класс функциональностью.

ФАСАД - вызывает классы и реализовывает их функциональность в зависимости от разных условий. Например - регистрация жалобы в зависимости от её типа.

FLYWEIGHT - паттерн для загрузки и и кеширования данных. Не даст повторно создать объект с тем же ключом и вернет прежний. Позволяет не создавать дублей данных (кеширование)

PROXY - также для кеширования данных, но при помощи встроенного в JS объекта Proxy.

  1. Поведенческие, позволяющие организовать взаимодействие классов разного типа

CHAIN_OF_RESPONSIBILITIES - позволяет последовательно модифицировать и вызывать методы другого класса.(как в jquery)

COMAND - класс, позволяющий управлять методами и св-вами другого класса через свои методы.

ИТЕРАТОР - повзоляет повторно вызывать метод класса с каждым переданым в него аргументом. Принимает массив аргументов. Использует Symbol.iterator

МЕДИАТОР - повзоляет обмениваться данными между классами, создавая для этого спец. класс.

OBSERVER - классы подписываются на этот класс-observer, и он триггерит тот или иной класс, вызывая их опред. метод. Также можно передать payload. (др. нзвания - listener, dispatcher)

STATE - повзоляет создать класс, который управляет состонием набора классов, описывая логику черз сои методы.

STRATEGY - создает "оболочку" для набора классов, вызывающую тот или иной их метод/св-во в зависимости от переданного при вызове в "оболочку" класса.

TEMPLATE - класс, который описывает определенный алгоритм и структуру, делегируя реализацию дочерним классам.

About

JavaScript Patterns Demo


Languages

Language:JavaScript 100.0%