Инкапсуляция

#OOP #OOD

Инкапсуляция - группировка связанных идей в общий юнит, на которые можно ссылаться под единым именем.

Объектно ориентированная инкапсуляция - группировка процедур вокруг данных.

Сокрытие информации и реализации - использование инкапсуляции для защиты от внешней видимости конкретной информации или реализации которая является внутренней по отношению к инкапсулируемой структуре.

Уровни инкапсуляции

Уровень 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) - это количество и сила связей между классами.