Привіт! Я знизив ціни на усі продукти. Час разом готувати свої програмерські скіли до пост-COVID-ної ери. Перевірити »

ПАТЕРНИ ПРОЕКТУВАННЯ на Rust

Каталог Rust прикладів

Породжувальні патерни

Абстрактна фабрика

Абстрактна фабрика

Дає змогу створювати сімейства пов’язаних об’єктів, не прив’язуючись до конкретних класів створюваних об’єктів.

Будівельник

Будівельник

Дає змогу створювати складні об'єкти крок за кроком. Будівельник дає можливість використовувати один і той самий код будівництва для отримання різних відображень об'єктів.

Фабричний метод

Фабричний метод

Визначає загальний інтерфейс для створення об'єктів у суперкласі, дозволяючи підкласам змінювати тип створюваних об'єктів.

Прототип

Прототип

Дає змогу копіювати об'єкти, не вдаючись у подробиці їхньої реалізації.

Одинак

Одинак

Гарантує, що клас має лише один екземпляр, та надає глобальну точку доступу до нього.

Структурні патерни

Адаптер

Адаптер

Дає змогу об’єктам із несумісними інтерфейсами працювати разом.

Міст

Міст

Розділяє один або кілька класів на дві окремі ієрархії — абстракцію та реалізацію, дозволяючи змінювати код в одній гілці класів, незалежно від іншої.

Компонувальник

Компонувальник

Дає змогу згрупувати декілька об'єктів у деревоподібну структуру, а потім працювати з нею так, ніби це одиничний об'єкт.

Декоратор

Декоратор

Дає змогу динамічно додавати об'єктам нову функціональність, загортаючи їх у корисні «обгортки».

Фасад

Фасад

Надає простий інтерфейс до складної системи класів, бібліотеки або фреймворку.

Легковаговик

Легковаговик

Дає змогу вмістити більшу кількість об'єктів у відведеній оперативній пам'яті. Легковаговик заощаджує пам'ять, розподіляючи спільний стан об'єктів між собою, замість зберігання однакових даних у кожному об'єкті.

Замісник

Замісник

Дає змогу підставляти замість реальних об'єктів спеціальні об'єкти-замінники. Ці об'єкти перехоплюють виклики до оригінального об'єкта, дозволяючи зробити щось до чи після передачі виклику оригіналові.

Поведінкові патерни

Ланцюжок обов'язків

Ланцюжок обов'язків

Дає змогу передавати запити послідовно ланцюжком обробників. Кожен наступний обробник вирішує, чи може він обробити запит сам і чи варто передавати запит далі ланцюжком.

Команда

Команда

Перетворює запити на об'єкти, дозволяючи передавати їх як аргументи під час виклику методів, ставити запити в чергу, логувати їх, а також підтримувати скасування операцій.

Ітератор

Ітератор

Дає змогу послідовно обходити елементи складових об'єктів, не розкриваючи їхньої внутрішньої організації.

Посередник

Посередник

Дає змогу зменшити зв'язаність великої кількості класів між собою, завдяки переміщенню цих зв'язків до одного класу-посередника.

Знімок

Знімок

Дає змогу зберігати та відновлювати минулий стан об'єктів, не розкриваючи подробиць їхньої реалізації.

Спостерігач

Спостерігач

Створює механізм підписки, що дає змогу одним об’єктам стежити й реагувати на події, які відбуваються в інших об’єктах.

Стан

Стан

Дає змогу об'єктам змінювати поведінку в залежності від їхнього стану. Ззовні створюється враження, ніби змінився клас об'єкта.

Стратегія

Стратегія

Визначає сімейство схожих алгоритмів і розміщує кожен з них у власному класі. Після цього алгоритми можна заміняти один на інший прямо під час виконання програми.

Шаблонний метод

Шаблонний метод

Визначає кістяк алгоритму, перекладаючи відповідальність за деякі його кроки на підкласи. Патерн дозволяє підкласам перевизначати кроки алгоритму, не змінюючи його загальної структури.

Відвідувач

Відвідувач

Дає змогу додавати до програми нові операції, не змінюючи класи об'єктів, над якими ці операції можуть виконуватися.