Инкапсуля́ция — свойство языка программирования, позволяющее объединить данные и код в объект и скрыть реализацию объекта от пользователя. При этом пользователю предоставляется только спецификация (
интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс.
Предостережение: Одна из наиболее распространенных ошибок делать сокрытие реализации только ради сокрытия. Целями, достойными усилий, являются:
- достижение предельной локализации изменений при необходимости таких изменений,
- прогнозируемость изменений (какие изменения в коде надо сделать для заданного изменения функциональности) и прогнозируемость последствий изменений.
Часто инкапсуляция может быть достигнута простейшими организационными мерами: Знание того, что «вот так-то делать нельзя» иногда является самым эффективным средством инкапсуляции!