This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * ПАТТЕРН СОСТОЯНИЕ (state) | |
| * | |
| * Паттерн Состояние управляет изменением поведения объекта при изменении его внутреннего состояния. | |
| * Внешне это выглядит так, словно объект меняет свой класс. | |
| * | |
| * Основная идея в том, что программа может находиться в одном из нескольких состояний, которые всё время сменяют друг | |
| * друга. Набор этих состояний, а также переходов между ними, предопределён и конечен. Находясь в разных состояниях, | |
| * программа может по-разному реагировать на одни и те же события, которые происходят с ней. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * ПАТТЕРН ИТЕРАТОР | |
| * | |
| Iterator — поведенческий шаблон проектирования. Представляет собой объект, позволяющий получить последовательный | |
| доступ к элементам объекта-агрегата без использования описаний каждого из агрегированных объектов. | |
| Например, такие элементы как дерево, связанный список, хеш-таблица и массив могут быть пролистаны (и модифицированы) | |
| с помощью объекта Итератор. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * ПАТТЕРН ШАБЛОННЫЙ МЕТОД | |
| * | |
| Задает «скелет» алгоритма в методе, оставляя определение реализации некоторых шагов субклассам. | |
| Субклассы могут переопределять некоторые части алгоритма без изменения его структуры. | |
| Методы внутри шаблонного метода могут быть пустыми, выдавать ошибку если не описаны в субклассе или иметь реализацию по умолчанию. | |
| Применение: | |
| 1. Когда подклассы должны расширять базовый алгоритм, не меняя его структуры. | |
| 2. Когда у вас есть несколько классов, делающих одно и то же с незначительными отличиями. Если вы редактируете один |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * ПАТТЕРН ФАСАД | |
| * | |
| Предоставляет унифицированный интерфейс к группе интерфейсов подсистемы. Фасад определяет высокоуровневый интерфейс, упрощающий работу с подсистемой. | |
| Превращает сложный интерфейс с множеством методов в простой интерфейс с минимум методов. | |
| В данном случае интерфейс фасада компьюетра будет иметь всего 2 метода - вкл/выкл, при том что под капотом выполняется | |
| 12 методов. | |
| Таким образом отделяется код клиента от кода реализации. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * ПАТТЕРН АДАПТЕР | |
| * | |
| Обеспечивает совместимость классов с разными интерфейсами, т.е. выполняет роль переводчика. | |
| В итоге клиент (тот кто вызывает методы) через адаптер может работать с разными классами с разными интерфейсами, даже не подозревая об этом, | |
| хотя умеет пользоваться только одним интерфейсом. | |
| */ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * ПАТТЕРН КОМАНДА | |
| * | |
| Смысл: отделить объект-источник запроса от объекта, принимающего и выполняющего эти запросы. | |
| Паттерн КОМАНДА — это поведенческий паттерн проектирования, который превращает запросы в объекты, позволяя передавать | |
| их как аргументы при вызове методов, ставить запросы в очередь, логировать их, а также поддерживать отмену операций. | |
| Убирает прямую зависимость между объектами, вызывающими операции, и объектами, которые их непосредственно выполняют. | |
| Позволяет реализовать простую отмену и повтор операций. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * ПАТТЕРН ДЕКОРАТОР (обертка) | |
| * Позволяет наделить обьект новыми возможностями не меняя первоначальный класс и не создавая дочерние классы | |
| * Принцип работы: декоратор помещает целевой обьект в обьект обертку, кот-й запускает базовое поведение обьекта, | |
| * а затем добавляет/отнимает что-то свое. | |
| * | |
| */ | |
| class interface_Coffee { |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * ПАТТЕРН НАБЛЮДАТЕЛЬ (почтальон) | |
| * Несколько наблюдателей (подписчиков) могут получать данные от одного субьекта (почтальона) | |
| * | |
| */ | |
| class Publisher { // субьект, получает и рассылает данные | |
| constructor() { | |
| this.observersList = []; // реестр наблюдателей (подписчиков) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /** | |
| * | |
| * ПАТТЕРН SINGLETON | |
| * | |
| * Паттерн Одиночка гарантирует, что класс имеет только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру. | |
| * | |
| */ | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Файл "tsconfig.json": | |
| // - устанавливает корневой каталог проекта TypeScript; | |
| // - выполняет настройку параметров компиляции; | |
| // - устанавливает файлы проекта. | |
| // Присутствие файла "tsconfig.json" в папке указывает TypeScript, что это корневая папка проекта. | |
| // Внутри "tsconfig.json" указываются настройки компилятора TypeScript и корневые файлы проекта. | |
| // Программа компилятора "tsc" ищет файл "tsconfig.json" сначала в папке, где она расположена, затем поднимается выше и ищет в родительских папках согласно их вложенности друг в друга. | |
| // Команда "tsc --project C:\path\to\my\project\folder" берет файл "tsconfig.json" из папки, расположенной по данному пути. | |
| // Файл "tsconfig.json" может быть полностью пустым, тогда компилятор скомпилирует все файлы с настройками заданными по умолчанию. | |
| // Опции компилятора, перечисленные в командной строке перезаписывают собой опции, заданные в файле "tsconfig.json". |
NewerOlder