Инкапсуляция
«Я думаю, что единственный тип науки, на который может походить программирование, — это наука строительства мостов. Кто-то строит мосты, а другие разбирают их, выдвигают более совершенные теории, и таким образом строительство продолжается».
Alan Kay
Инкапсуляция — механизм языка программирования, ограничивающий доступ к составляющим объект компонентам (методам и свойствам), делает их приватными, то есть доступными только внутри объекта. Является важным инструментом ООП наряду с полиморфизмом, наследованием и абстракцией данных. Например, к инкапсулированной переменной можно обратиться при написании реализации класса, но при его использовании обращение к ней невозможно.
В языках, поддерживающих замыкания, инкапсуляция рассматривается как понятие не присущее исключительно объектно-ориентированному программированию. Также, реализации абстрактных типов данных (например, модули) предлагают похожую на инкапсуляцию модель сокрытия данных.
Область применения
Сокрытие реализации целесообразно применять в следующих целях:
- При необходимости максимальной локализации предстоящих изменений, когда изменяется только работа объекта, а не программы;
- При необходимости предсказания предстоящих изменений и их последствий;
- При необходимости очистки глобальной области видимости.
Пример инкапсуляции
Java
class A {
private int a;
private int b;
private void doSomething() { //скрытый метод
//actions
}
public int returnSomething() { //открытый метод
return a;
}
}
|