Skip to content

Instantly share code, notes, and snippets.

View Sunpacker's full-sized avatar
🤚
Busy

Sunpacker Sunpacker

🤚
Busy
View GitHub Profile
@Sunpacker
Sunpacker / pattern-builder.js
Created November 29, 2023 15:55 — forked from DmitriiNazimov/pattern-builder.js
[JS ES6 Паттерн СТРОИТЕЛЬ (builder)] #js #ES6 #ООП #Паттерны
/**
*
* ПАТТЕРН СТРОИТЕЛЬ (builder (композиционный конструктор обьекта))
*
* Паттерн СТРОИТЕЛЬ - это порождающий паттерн проектирования, который позволяет создавать сложные объекты пошагово.
* Строитель даёт возможность использовать один и тот же код строительства для получения разных представлений объектов.
* Применение: Паттерн Строитель нужен, если объект может существовать в разных вариациях или процесс
* инстанцирования состоит из нескольких шагов.
* В этом случае есть три варианта:
* - огромный конструктор(фабрика) со множеством if/else в котором легко запуться и который тяжело понять
@Sunpacker
Sunpacker / pattern-chain-of-responsibility.js
Created November 29, 2023 15:55 — forked from DmitriiNazimov/pattern-chain-of-responsibility.js
[JS ES6 Паттерн ЦЕПОЧКА ОБЯЗАННОСТЕЙ (Chain of responsibility)] #js #ES6 #ООП #Паттерны
/**
*
* ПАТТЕРН ЦЕПОЧКА ОБЯЗАННОСТЕЙ (Chain of responsibility)
*
* Паттерн ЦЕПОЧКА ОБЯЗАННОСТЕЙ - это поведенческий паттерн проектирования, который позволяет передавать запросы
* последовательно по цепочке обработчиков. Каждый последующий обработчик решает, может ли он обработать запрос сам
* и стоит ли передавать запрос дальше по цепи.
*
* Пример: у вас есть три счета (A, B, C) с разными суммами и разным приоритетом использования. Сначала проверяется A,
* если на нем достаточно денег для покупки, то цепочка прерывается. Иначе проверяется B, затем C. Цепь будет
@Sunpacker
Sunpacker / pattern-flyweight.js
Created November 29, 2023 15:55 — forked from DmitriiNazimov/pattern-flyweight.js
[JS ES6 Паттерн ПРИСПОСОБЛЕНЕЦ/ЛЕГКОВЕС (Flyweight)] #js #ES6 #ООП #Паттерны
/**
*
* ПАТТЕРН ПРИСПОСОБЛЕНЕЦ/ЛЕГКОВЕС (Flyweight)
*
* Паттерн ПРИСПОСОБЛЕНЕЦ/ЛЕГКОВЕС - структурный шаблон проектирования, при котором объект, представляющий себя как
* уникальный экземпляр в разных местах программы, по факту не является таковым.
* Данный паттерн проектирования позволяет вместить большее количество объектов в отведённую оперативную память.
* Легковес экономит память, разделяя общее состояние объектов между собой, вместо хранения одинаковых данных в
* каждом объекте.
@Sunpacker
Sunpacker / pattern-mediator.js
Created November 29, 2023 15:55 — forked from DmitriiNazimov/pattern-mediator.js
[JS ES6 Паттерн ПОСРЕДНИК (mediator) ] #js #ES6 #ООП #Паттерны
/**
*
* ПАТТЕРН ПОСРЕДНИК (mediator)
*
* Паттерн ПОСРЕДНИК (mediator) - это поведенческий паттерн проектирования, который позволяет уменьшить связанность
* множества классов между собой, благодаря перемещению этих связей в один класс-посредник.
* Паттерн Посредник используется для централизации сложных взаимодействий и управляющих операций между объектами.
* Один из модулей медиатора изменяет состояние -> оповещает об этом медиатор -> медиатор оповещает об этом другие
* модули, которым положено знать о случившемся.
* Довольно популярна реализация Посредника при помощи Наблюдателя. При этом объект посредника будет выступать
@Sunpacker
Sunpacker / pattern-visitor.js
Created November 29, 2023 15:55 — forked from DmitriiNazimov/pattern-visitor.js
[JS ES6 Паттерн ПОСЕТИТЕЛЬ (visitor)] #js #ES6 #ООП #Паттерны
/**
*
* ПАТТЕРН ПОСЕТИТЕЛЬ (visitor)
*
* ПОСЕТИТЕЛЬ — используется для расширения возможностей комбинации объектов, т.е. паттерн Посетитель позволяет
* добавлять объектам дополнительные операции, не изменяя их исходный код.
*
* Когда вам нужно выполнить какую-то операцию над всеми элементами сложной структуры объектов, например, деревом.
* Посетитель позволяет применять одну и ту же операцию к объектам различных классов. ИЛИ когда новое поведение имеет
* смысл только для некоторых классов из существующей иерархии.
@Sunpacker
Sunpacker / pattern-memento.js
Created November 29, 2023 15:53 — forked from DmitriiNazimov/pattern-memento.js
[JS ES6 Паттерн ХРАНИТЕЛЬ (memento)] #js #ES6 #ООП #Паттерны
/**
*
* ПАТТЕРН ХРАНИТЕЛЬ (memento)
*
* Паттерн ХРАНИТЕЛЬ (memento) - Паттерн Хранитель используется для реализации возврата к одному из предыдущих
* состояний (например, если пользователь выполнил команду «Отменить»).
* Хранитель – это объект, в котором сохраняется внутреннее состояния другого объекта – хозяина хранителя. Для работы
* механизма отката нужно, чтобы хозяин предоставил хранитель, когда возникнет необходимость записать контрольную точку
* состояния хозяина. Только хозяину разрешено помещать в хранитель информацию и извлекать ее оттуда, для других
* объектов хранитель непрозрачен.
@Sunpacker
Sunpacker / vue.json
Created July 24, 2023 17:19
[snippet] Vue templates
{
"Vue Single File Component Composition API": {
"prefix": "vbase",
"body": [
"<script setup>",
"",
"</script>",
"",
"<template>",
"\t<div>",
{
"cursor.composer.shouldChimeAfterChatFinishes": true,
"terminal.integrated.defaultProfile.windows": "Git Bash",
"security.workspace.trust.untrustedFiles": "open",
"files.exclude": {
"**/node_modules": true
},