Инкапсуляция
Инкапсуляция - группировка связанных идей в общий юнит, на которые можно ссылаться под единым именем.
Объектно ориентированная инкапсуляция - группировка процедур вокруг данных.
Сокрытие информации и реализации - использование инкапсуляции для защиты от внешней видимости конкретной информации или реализации которая является внутренней по отношению к инкапсулируемой структуре.
Уровни инкапсуляции
Уровень 0 - Сырая портянка кода
Уровень 1 - Процедурный модуль
Уровень 2 - Класс/Объектная структура
Уровень 3+ - По мнению автора это инкапсуляция будущего уровня, выше уровня объектов. (Автор предсказал верно)
Критерии проектирования, определяющие взаимодействие уровней инкапсуляции.
Ниже в таблице показаны обобщенные критерии. Например связность это классический показатель качества взаимосвязей между процедурой (уровень 1) и строками кода внутри процедуры (уровень 0).
to from |
Уровень 0 (строка кода) |
Уровень 1 (процедура) | Уровень 2 (Класс) |
|---|---|---|---|
| Уровень 0 (строка кода) | Структурное программирование (Structured programming) | Ветвление сообщений (Message fan-out) | - |
| Уровень 1 (процедура) | Связность (Cohesion) |
Связанность (Coupling) | - |
| Уровень 2 (Класс) | - | Связность класса (Class cohesion) |
Связанность класса (Class coupling) |
Связность класса (Class cohesion) - означает, что все методы класса нацелены на достижение общей цели, цели класса.
Связанность класса (Class coupling) - это количество и сила связей между классами.