Pattern Guru. Шаблоны проектирования. Архитектура ПО
3.13K subscribers
201 photos
4 videos
93 links
Патерны программирования.
Архитектура ПО.
Микросервисы

@anothertechrock
Download Telegram
Вопрос с собеседования

Зачем нужна инкапсуляция?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Зачем нужна инкапсуляция?

Ответ:

Инкапсуляция позволяет скрыть данные и обернуть данные и код, который работает над ними, в единое целое.

#interview
1
Это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе.
Anonymous Quiz
1%
Singleton
2%
Factory Method
3%
Template Method
93%
Adapter
1%
Strategy
Паттерн Singletone с примером на JavaScript

Несмотря на то что в последнее время все больше задач мы обычно решаем в функциональном стиле я хотел бы сегодня вам рассказать о одном из самых распространенных классовых паттернов - синглтон.

И так что это:
Паттерн Singleton означает создание только одного экземпляра класса и доступ к нему через методы-геттеры.

Пример использования:

class Singleton {
 constructor() {
  if (!Singleton.instance) {
   Singleton.instance = this;
  }
  return Singleton.instance;
 }

 someMethod() {
  console.log('Hello from Singleton!');
 }
}

const instance1 = new Singleton();
const instance2 = new Singleton();

instance1.someMethod(); // "Hello from Singleton!"
console.log(instance1 === instance2); // true

В данном примере класс Singleton будет создавать только один экземпляр и все вызовы конструктора будут возвращать ссылку на этот экземпляр. Таким образом, мы можем быть уверены, что где бы ни встретились вызовы методов класса Singleton, они всегда будут работать с одним и тем же экземпляром.
Вопрос с собеседования

Что такое виртуальные функции?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое виртуальные функции?

Ответ:

Виртуальные функции – это часть функций, которые присутствуют в родительском классе, и они переопределяются подклассом.

Эти функции помогают достичь полиморфизма во время выполнения.


#interview
👍2🙈2
Вопрос с собеседования

Что такое Dependency inversion principle?

Ответ опубликуем завтра, а пока пишите свои варианты в комментариях!

#interview
Вопрос с собеседования

Что такое Dependency inversion principle?

Ответ:

Dependency inversion principle - принцип инверсии зависимостей.

Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

#interview
👎3👍1😁1
Конвертирует интерфейс класса в другой интерфейс, ожидаемый клиентом. Позволяет классам с разными интерфейсами работать вместе. О каком паттерне идёт речь?
Anonymous Quiz
2%
Строитель
83%
Адаптер
11%
Мост
4%
Компоновщик
🚩 Шаблон проектирования Singleton

🟣Подробное описание паттерна

Лучшие методы:
1. Декоратор
2. Базовый класс
3. Метакласс
4. Декоратор возвращает класс с тем же именем
5. Модуль

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👌1
Этот паттерн гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к нему.
Anonymous Quiz
1%
Factory Method
1%
Adapter
0%
Template Method
1%
Strategy
97%
Singleton
🔍 Что такое MVC?

MVC (Model-View-Controller) — это популярный архитектурный паттерн, который разделяет приложение на три компонента:

Model — отвечает за бизнес-логику и управление данными. Это сердце приложения, где происходит взаимодействие с базой данных, выполнение бизнес-правил и другие операции.

View — представляет собой интерфейс пользователя. Он отвечает за отображение данных и взаимодействие с пользователем, но не содержит бизнес-логики.

Controller — посредник между Model и View. Он получает запросы от пользователя, передает их Model и возвращает результаты во View.

💡 MVC позволяет четко разделить обязанности между компонентами, облегчая поддержку и масштабирование кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Шаблон проектирования Abstract Factory

Шаблон Абстрактная фабрика относится к классу порождающих паттернов. Его основное назначение - предоставить интерфейс для создания семейства взаимосвязанных объектов, не указывая конкретные классы этих объектов.

Этот шаблон стоит использовать, если:
- ваша система должна быть независимой от способа создания новых объектов
- создаваемые объекты должны использоваться вместе и быть взаимосвязанными.

Классы абстрактной фабрики часто реализуются фабричными методами,
но могут быть реализованы и с помощью паттерна Prototype.

Смотреть реализацию
4
This media is not supported in your browser
VIEW IN TELEGRAM
☁️ Топ-6 паттернов обмена сообщения между сервисами в облачной инфраструктуре

🔹 Asynchronous Request-Reply
🔹 Pub-Sub
🔹 Claim Check
🔹 Priority Queue
🔹 Saga
🔹 Competing Consumers

👉 Источник

#инфографика
Получая формальный язык, определяет представление его грамматики. О каком паттерне идёт речь?
Anonymous Quiz
86%
Интерпретатор
6%
Прототип
4%
Итератор
3%
Строитель
🚩 Шаблон проектирования Фасад

🟣 Подробное описание паттерна

Структурный паттерн Фасад (англ. Facade) помогает скрыть способ реализации сложной системы и предоставляет клиенту простой интерфейс взаимодействия с ней.

Другими словами, данный паттерн проектирования используется в качестве “обертки”, скрывающей детали реализации.

Фасад полезен, если вы используете какую-то сложную библиотеку со множеством подвижных частей, но вам нужна только часть её возможностей.

🗂 Код на Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5👎1