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

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

«Я думаю, что единственный тип науки, на который может походить программирование, — это наука строительства мостов. Кто-то строит мосты, а другие разбирают их, выдвигают более совершенные теории, и таким образом строительство продолжается».

Alan Kay

Инкапсуляция — механизм языка программирования, ограничивающий доступ к составляющим объект компонентам (методам и свойствам), делает их приватными, то есть доступными только внутри объекта. Является важным инструментом ООП наряду с полиморфизмом, наследованием и абстракцией данных. Например, к инкапсулированной переменной можно обратиться при написании реализации класса, но при его использовании обращение к ней невозможно.

В языках, поддерживающих замыкания, инкапсуляция рассматривается как понятие не присущее исключительно объектно-ориентированному программированию. Также, реализации абстрактных типов данных (например, модули) предлагают похожую на инкапсуляцию модель сокрытия данных.

Область применения

Сокрытие реализации целесообразно применять в следующих целях:

  1. При необходимости максимальной локализации предстоящих изменений, когда изменяется только работа объекта, а не программы;
  2. При необходимости предсказания предстоящих изменений и их последствий;
  3. При необходимости очистки глобальной области видимости.

Пример инкапсуляции

Java

class A {

private int a;

private int b;

private void doSomething() { //скрытый метод

//actions

}

public int returnSomething() { //открытый метод

return a;

} }