Описание:
1. Борьба с ошибками, порожденными эффектом каскадного изменения модулей.
2. Достижение хорошего дизайна, через распределение ответственности
3. Наглядная демонстрация.
7. LIST OF GRASP PATTERNS
Low coupling
High cohesion
Creator
Information expert
Controller
7
Polymorphism
Indirection
Pure fabrication
Protected variations
8. COUPLING AND COHESION
low coupling
● слабое зацепление
● низкая связанность
8
high сohesion
● высокая связность
● высокое зацепление
● когезия
● сгущенность
● самодостаточность
9. Проблема
Как уменьшить вероятность ошибки,
порожденной эффектом каскадного изменения
компонентов и увеличить вероятность повторного
использования?
9
10. LOW COUPLING
Low coupling
● Измерьте, насколько сильно один элемент
опирается на другие элементы.
● Элемент со слабой связанностью не зависит от
большого количества других элементов.
10
16. HIGH COHESION
COHESION - мера того, насколько сильно
связаны и сосредоточены обязанности элемента.
Элемент, который не выполняет огромный
объем работ и сфокусирован на выполнение одной
задачи обладает высокой сплоченностью.
16
22. LIFT
22
Структура проекта должны быть интуитивно
понятна новому человеку в проекте. Для этого можно
воспользоваться принципами LIFT. Согласно им
структура проекта должна позволять
23. LIFT
23
● L - (Locate) легко находить нужный нам код
● I - (Identify) идентифицировать ответственность с
первого взгляда
● F - (Flat) сохранять плоскую структуру настолько
насколько это возможно
● T - (Try to stay DRY или T-DRY) минимизировать
дублирование в системе
30. CONTROLLER
30
Создать класс, который будет отвечать за
обработку входных системных событий,
делегируя обязанности по их обработке
компетентным классам.