Инкапсуляция (программирование)
Материал из Википедии — свободной энциклопедии
Инкапсуля́ция — свойство языка программирования, позволяющее объединить данные и код в объект и скрыть реализацию объекта от пользователя. При этом пользователю предоставляется только спецификация (интерфейс) объекта. Пользователь может взаимодействовать с объектом только через этот интерфейс.
Инкапсуляция — один из трех важнейших механизмов объектно-ориентированного программирования (наряду с полиморфизмом и наследованием).
Предостережение: Одна из наиболее распространенных ошибок делать сокрытие реализации только ради сокрытия. Целями, достойными усилий, являются:
- достижение предельной локализации изменений при необходимости таких изменений,
- прогнозируемость изменений (какие изменения в коде надо сделать для заданного изменения функциональности) и прогнозируемость последствий изменений.
Часто инкапсуляция может быть достигнута простейшими организационными мерами: Знание того, что «вот так-то делать нельзя» иногда является самым эффективным средством инкапсуляции!
Содержание |
[править] Примеры
[править] C++
сlass A { private: int a,b;//скрытые свойства void Do_Something(void);//скрытый метод. public: int Return_Something(void); //открытый интерфейс };
Класс А инкапсулирует свойства a, b и метод DoSomething, представляя внешний интерфейс Return_Something.
[править] Delphi
В Delphi для создания скрытых полей или методов их достаточно объявить в секции private
.
TMyClass = class private FMyField: Integer; procedure SetMyField(const Value: Integer); function GetMyField: Integer protected public property MyField: Integer read GetMyField write SetMyField; end;
Для создания интерфейса доступа к скрытым полям в Delphi введены свойства.