Що таке патерни grasp
GRASP (Загальні Патерни Призначення Відповідальностей Програмного Забезпечення) — це набір з дев'яти принципів для розподілу відповідальностей між класами та об'єктами в об'єктно-орієнтованому дизайні.
Принципи GRASP
- Експерт з інформації
Призначайте відповідальність класу, який має необхідну інформацію для її виконання. 2. Творець
Довірте створення екземплярів об'єктів класу, який містить або агрегує створені об'єкти. 3. Контролер
Обробляйте зовнішні події (UI, система) за допомогою спеціального класу контролера, відокремлюючи логіку від презентації. 4. Низька зв'язність
Стреміться до мінімальної зв'язності між класами, щоб зміни впливали на якомога меншу кількість сутностей. 5. Висока згуртованість
Групуйте пов'язані відповідальності в одному класі, щоб вони залишалися вузько сфокусованими та зрозумілими. 6. Поліморфізм
Використовуйте поліморфізм, щоб уникнути умовних конструкцій, делегуючи змінну поведінку підкласам. 7. Чиста фабрикація
При необхідності вводьте допоміжні класи ("фабрикації"), щоб зменшити зв'язність або підвищити згуртованість. 8. Посередництво
Вводьте посередників між об'єктами, щоб ослабити прямі залежності та покращити варіативність. 9. Захищені варіації
Ізолюйте області, які можуть змінюватися, за допомогою стабільних інтерфейсів, щоб мінімізувати вплив змін.
Примітка:
GRASP не накладає специфічну структуру, але надає рекомендації для розумного розподілу відповідальностей.
Кроки для застосування GRASP у проекті
1. Визначте ключові відповідальності
Аналізуйте варіанти використання та визначте набір операцій і даних.
2. Призначте експертів
Для кожної відповідальності виберіть клас "Експерт з інформації", який має необхідні дані.
3. Аналізуйте зв'язність і згуртованість
Застосуйте принципи Низької зв'язності та Високої згуртованості, перерасподіліть відповідальності, якщо це необхідно.
4. Введіть фабрикацію або посередництво
Якщо класи починають перевантажуватися або зв'язність занадто сильна, додайте допоміжний клас або посередника.
5. Захистіть змінні частини
Обгорніть нестабільний код стабільними інтерфейсами (Захищені варіації). Примітка:
GRASP найкраще застосовувати на ранніх етапах проектування, щоб уникнути антипатернів і покращити обслуговування системи.
Читати далі — в оригінальній статті Лармана:
Резюме
- GRASP — це дев'ять принципів призначення відповідальностей в об'єктно-орієнтованому дизайні.
- Основні ідеї: Експерт з інформації, Низька зв'язність, Висока згуртованість та Захищені варіації.
- Дотримуючись GRASP, ви отримаєте більш гнучку, підтримувану та розширювану архітектуру.
- refactoring.guru - патерни та рефакторинг
- patterns.dev - патерни
Зміст
Принципи GRASPКроки для застосування GRASP у проектіРезюме
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.