Конспект актуален по состоянию на август 2022 года.
В данном конспекте отсутствует:
- методы работы с юникодом.
- устаревшие (deprecated) и эксперементальные методы.
✅ - часто используемый метод, рекомендуется запомнить в первую очередь.
В качестве основы используется Angular Git commit Message Convention - это наиболее авторитетный источник. Все остальные вариации конвенций по коммитам ссылаются на эту.
Также достаточно авторитетным источником является conventionalcommits.org
Ниже находится краткая выжимка того, как я понял эти конвенции.
/** | |
* | |
* ПАТТЕРН ПОСЕТИТЕЛЬ (visitor) | |
* | |
* ПОСЕТИТЕЛЬ — используется для расширения возможностей комбинации объектов, т.е. паттерн Посетитель позволяет | |
* добавлять объектам дополнительные операции, не изменяя их исходный код. | |
* | |
* Когда вам нужно выполнить какую-то операцию над всеми элементами сложной структуры объектов, например, деревом. | |
* Посетитель позволяет применять одну и ту же операцию к объектам различных классов. ИЛИ когда новое поведение имеет | |
* смысл только для некоторых классов из существующей иерархии. |
/** | |
* | |
* ПАТТЕРН ХРАНИТЕЛЬ (memento) | |
* | |
* Паттерн ХРАНИТЕЛЬ (memento) - Паттерн Хранитель используется для реализации возврата к одному из предыдущих | |
* состояний (например, если пользователь выполнил команду «Отменить»). | |
* Хранитель – это объект, в котором сохраняется внутреннее состояния другого объекта – хозяина хранителя. Для работы | |
* механизма отката нужно, чтобы хозяин предоставил хранитель, когда возникнет необходимость записать контрольную точку | |
* состояния хозяина. Только хозяину разрешено помещать в хранитель информацию и извлекать ее оттуда, для других | |
* объектов хранитель непрозрачен. |
/** | |
* | |
* ПАТТЕРН ПОСРЕДНИК (mediator) | |
* | |
* Паттерн ПОСРЕДНИК (mediator) - это поведенческий паттерн проектирования, который позволяет уменьшить связанность | |
* множества классов между собой, благодаря перемещению этих связей в один класс-посредник. | |
* Паттерн Посредник используется для централизации сложных взаимодействий и управляющих операций между объектами. | |
* Один из модулей медиатора изменяет состояние -> оповещает об этом медиатор -> медиатор оповещает об этом другие | |
* модули, которым положено знать о случившемся. | |
* Довольно популярна реализация Посредника при помощи Наблюдателя. При этом объект посредника будет выступать |
/** | |
* | |
* ПАТТЕРН ПРИСПОСОБЛЕНЕЦ/ЛЕГКОВЕС (Flyweight) | |
* | |
* Паттерн ПРИСПОСОБЛЕНЕЦ/ЛЕГКОВЕС - структурный шаблон проектирования, при котором объект, представляющий себя как | |
* уникальный экземпляр в разных местах программы, по факту не является таковым. | |
* Данный паттерн проектирования позволяет вместить большее количество объектов в отведённую оперативную память. | |
* Легковес экономит память, разделяя общее состояние объектов между собой, вместо хранения одинаковых данных в | |
* каждом объекте. |
/** | |
* | |
* ПАТТЕРН ЦЕПОЧКА ОБЯЗАННОСТЕЙ (Chain of responsibility) | |
* | |
* Паттерн ЦЕПОЧКА ОБЯЗАННОСТЕЙ - это поведенческий паттерн проектирования, который позволяет передавать запросы | |
* последовательно по цепочке обработчиков. Каждый последующий обработчик решает, может ли он обработать запрос сам | |
* и стоит ли передавать запрос дальше по цепи. | |
* | |
* Пример: у вас есть три счета (A, B, C) с разными суммами и разным приоритетом использования. Сначала проверяется A, | |
* если на нем достаточно денег для покупки, то цепочка прерывается. Иначе проверяется B, затем C. Цепь будет |
/** | |
* | |
* ПАТТЕРН СТРОИТЕЛЬ (builder (композиционный конструктор обьекта)) | |
* | |
* Паттерн СТРОИТЕЛЬ - это порождающий паттерн проектирования, который позволяет создавать сложные объекты пошагово. | |
* Строитель даёт возможность использовать один и тот же код строительства для получения разных представлений объектов. | |
* Применение: Паттерн Строитель нужен, если объект может существовать в разных вариациях или процесс | |
* инстанцирования состоит из нескольких шагов. | |
* В этом случае есть три варианта: | |
* - огромный конструктор(фабрика) со множеством if/else в котором легко запуться и который тяжело понять |
/** | |
* | |
* ПАТТЕРН МОСТ (bridge) | |
* | |
* Паттерн МОСТ - отделяет абстракцию от реализации, благодаря чему появляется возможность независимо изменять то и | |
* другое. Это структурный паттерн проектирования, который разделяет один или несколько классов на две отдельные | |
* иерархии — абстракцию и реализацию, позволяя изменять их независимо друг от друга. | |
* Например у нас есть класс Круг, и мы хотим создавать круги разного цвета, для этого нужно будет создать подклассы | |
* Синий Круг, Желтый круг и т.д. А если потом появятся квадраты и треугольники, то для них тоже нужно будет создавать | |
* большое количество подклассов. В итоге иерархия будет огромной. Логичнее создать две независимых иерархии - |
/** | |
* | |
* ПАТТЕРН ЗАМЕСТИТЕЛЬ (proxy) | |
* Предоставляет суррогатный объект, управляющий доступом к другому объекту. | |
* | |
* Заместитель это обертка, которая применяется в следующих случаях: | |
* 1. Ленивая инициализация (виртуальный прокси). Когда у вас есть тяжёлый объект, | |
* грузящий данные из файловой системы или базы данных. | |
* 2. Защита доступа (защищающий прокси). Когда в программе есть разные типы пользователей, и вам хочется | |
* защищать объект от неавторизованного доступа. Прокси может проверять доступ при каждом вызове и передавать |