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

Один из основных принципов ООП. Как обычно бывает с фундаментальными понятиями, границы определения размыты. В самом общем случае под инкапсуляцией подразумевается группировка информации и логики обработки именно этой информации. В этом смысле инкапсуляция достигается средствами модульного программирования.

Более узкий и прикладной смысл инкапсуляции – принцип сокрытия данных. Так инкапсуляция достигается не только группировкой, но и ограничением доступа к внутренней реализации для других компонентов. Под компонентами здесь подразумеваются и более мелкие чем модуль части программы. Функция инкапсулирует локальные переменные, класс инкапсулирует приватные поля.

Термин тесно связан с понятием абстракции. Это техника разделения программного контракта и средств его реализации. Если проще, разделения на интерфейс и его имплементацию.

Понятие инкапсуляции присуще не только ООП. Абстракция данных применяется например и в функциональном программировании, модуляризация широко применима в процедурных языках.