TGViewer
Системный Аналитик Системный Аналитик @sys_sa · 19.1K subscribers
Post #393 14.2K
🔖Паттерны проектирования и архитектурные паттерны

Паттерны проектирования
(ПП) — проверенные решения для часто встречающихся проблем в ПО. Шаблоны, которые применяются для повышения эффективности и качества кода

Архитектурные паттерны (АП) — шаблоны для высокоуровневой организации системы. Они определяют основные компоненты системы, их взаимосвязи и взаимодействия


✳️ Отличие

Служат для разных уровней проектирования ПО:

🟢 ПП работают на уровне классов и объектов. Используются разработчиками при написании / рефакторинге кода
🔵 АП на более высоком уровне, описывают структуру всего продукта. Определяют на какие компоненты/модули будет делиться приложение и каким образом они взаимодействуют


✳️ Паттерны проектирования

Применение

〰 Улучшение читаемости и поддержки кода
〰 Уменьшение дублирования кода
〰 Помогают быстрее и эффективнее создавать код

Делятся на три вида:

🟢 Порождающие

Для создания экземпляра объекта или группы связанных объектов

➡️ Одиночка (Singleton): гарантирует существование только одного экземпляра определенного класса, который можно использовать из любой части программы
➡️ Фабрика (Factory): создает объекты через специальный метод или класс, скрывая детали их создания
➡️ Прототип (Prototype): объект сам создает свои копии
➡️ Ленивая инициализация (Lazy Initialization): создает объект по мере необходимости

🟢 Структурные

В основном связаны с композицией объектов, с тем, как сущности могут использовать друг друга

➡️ Декоратор (Decorator): динамически добавляет новые обязанности объектам
➡️ Фасад (Facade): предоставляет простой интерфейс к сложной системе, скрывая ее реализацию
➡️ Заместитель (Proxy): паттерн, похожий на «Фасад», но со специальным объектом-заместителем, который контролирует доступ к основному

🟢 Поведенческие

Связаны с распределением обязанностей между объектами. Отличаются от структурных шаблонов описанием не только структуры, но и способов общения между ними

➡️ Наблюдатель (Observer): позволяет объектам следить за изменениями состояния другого объекта
➡️ Посредник (Mediator): организует слабые связи между объектами, чтобы снизить их зависимость друг от друга
➡️ Хранитель (Memento): помогает сохранить объект в каком-то состоянии с возможностью вернуться к нему в будущем


✳️ Архитектурные паттерны

Применение

〰 Определение общей структуры системы
〰 Обеспечение масштабируемости и надежности
〰 Упрощение взаимодействия между компонентами

Примеры


Более абстрактные:
➡️ Service-Oriented Architecture (SOA) (Сервис-ориентированная архитектура): система организована вокруг предоставления услуг (сервисов), которые могут использоваться различными приложениями
➡️ Layered Architecture (Слоистая архитектура): делит систему на уровни (слои), каждый из которых отвечает за конкретный функционал

Более конкретные:
➡️ Event-Driven Architecture (Событийно-ориентированная архитектура): компоненты системы взаимодействуют через передачу событий. Это один из способов реализации SOA
➡️ Микросервисы: разделяет приложение на небольшие, самостоятельные сервисы, которые могут разрабатываться и разворачиваться независимо. Является конкретным примером SOA
➡️ Клиент - сервер: делит систему на серверы, предоставляющие услуги, и клиенты, запрашивающие их
➡️ MVC (Model-View-Controller) (Модель-Вид-Контроллер): разделяет систему на три основные компоненты для улучшения тестирования и организации кода


✳️ Взаимосвязь GRASP с архитектурными паттернами

В объектно-ориентированных системах внутри архитектурных паттернов можно использовать паттерны GRASP
Например, паттерны для распределения обязанностей между классами и объектами (Creator, Information Expert)
Они помогут определить, как распределять обязанности


⭐️ Подборки материалов по этой и другим темам доступны в базе знаний по системному анализу

#проектирование #архитектура
  • 🔥 25
  • 👍 16
  • ⚡ 3
  • ❤ 1
More from @sys_sa
  1. Sep 26, 2026Как облегчить работу ИТ-аналитика уже сейчас — без долгосрочных перестроек процессов? Обсу…
  2. Sep 24, 2026️️️️️️️️📚Курс: «Системный аналитик. Экспертный уровень». За 146 часов обучения получите а…
  3. Aug 28, 2026❓ ICAM (Incident Cause Analysis Method) ICAM (Incident Cause Analysis Method) — метод разб…
  4. Aug 19, 2026🖥 NewSQL NewSQL — класс реляционных СУБД, который совмещает привычный SQL и строгие ACID…
  5. Jul 14, 2026🔼 Server Driven UI (SDUI) Server Driven UI (SDUI) — архитектурный подход, при котором сер…
  6. Jul 7, 2026📊 Сравнение Баз данных и Хранилищ данных ▫️База данных – оперативное хранилище, где содер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →