* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Инкапсуляция
8 февраля 2009
Инкапсуляция представляет собой один из базовых принципов ООП, суть которо- го состоит в отделении реализации объекта от его интерфейса. Другими словами, приложение взаимодействует с объектом через его интерфейс, который состоит из открытых свойств и методов. Коль скоро интерфейс объекта остается неизменным, приложение сохраняет способность к взаимодействию с ним, даже если в новой версии объекта его реализация полностью изменится.
Объекты должны взаимодействовать друг с другом только через свои открытые методы и свойства, поэтому объекту требуются все необходимые данные и полный набор методов, необходимых для работы с этими данными. Интерфейс ни в коем случае не должен открывать доступ к внутренним данным объекта, поэтому поля с внутренними данными объекта редко объявляют с модификатором Public (public). Вернемся к примеру с объектом Автомобиль, который может взаимодействовать с объектом Водитель через открытый интерфейс, где объявлены методы Ехатъ_впе- ред, Ехать_назад и Остановиться — их достаточно для взаимодействия объектов Водитель и Автомобиль. У объекта Автомобиль может быть дочерний объект Двига- тель, но это безразлично объекту Водитель — ему важно лишь наличие методов, вызывая которые, удается получать соответствующие значения. Так, можно заме- нить объект Двигатель, и взаимодействующий с ним объект Водитель не заметит замены, если она не нарушит корректную работу интерфейса.