Рекомендуем, 2020

Выбор редакции

Разница между сокрытием данных и инкапсуляцией

Сокрытие данных и инкапсуляция являются важной концепцией объектно-ориентированного программирования. Инкапсуляция означает обертывание реализации элемента данных и методов внутри класса. Когда реализация всех членов данных и методов внутри класса инкапсулирована, имя метода может описывать только то, какое действие он может выполнить над объектом этого класса. Под сокрытием данных подразумевается защита членов класса от незаконного или несанкционированного доступа. Основное различие между сокрытием данных и инкапсуляцией заключается в том, что сокрытие данных больше фокусируется на безопасности данных, а инкапсуляция - больше на скрытии сложности системы. Есть некоторые другие различия между сокрытием данных и инкапсуляцией, они описаны в сравнительной таблице, показанной ниже.

Сравнительная таблица

Основа для сравненияСкрытие данныхИнкапсуляция
основнойСкрытие данных Забота о безопасности данных наряду с сокрытием сложности.Инкапсуляция касается упаковки данных, чтобы скрыть сложность системы.
фокусData Hiding фокусируется на ограничении или разрешении использования данных внутри капсулы.Инкапсуляция фокусируется на обертывании или упаковке сложных данных.
Спецификатор доступаДанные под сокрытием данных всегда являются частными и недоступными.Данные в инкапсуляции могут быть частными или общедоступными.
ПроцессСокрытие данных - это процесс, а также техника.Инкапсуляция - это подпроцесс скрытия данных.

Определение сокрытия данных

Сокрытие данных - это концепция объектно-ориентированного программирования, которая подтверждает безопасность членов класса от несанкционированного доступа. Сокрытие данных - это метод защиты членов данных от манипуляций или взлома из любого другого источника. Данные - это наиболее чувствительный и изменчивый контент программы, который при манипулировании может привести к неправильному выводу, а также наносит ущерб целостности данных. Скрытие данных контролируется в Java с помощью модификаторов доступа (частного, открытого и защищенного). Данные, которые являются общедоступными, доступны извне класса, поэтому, если вы хотите скрыть свои данные или ограничить доступ к ним извне, объявите ваши данные закрытыми . Личные данные доступны только для объектов этого класса.

Давайте разберемся с данными, скрывающимися на примере. Предположим, вы объявили класс CheckAccount и у вас есть баланс членов данных внутри этого класса. Здесь баланс счета является конфиденциальной информацией. Вы можете разрешить стороннему приложению проверять баланс внутри учетной записи, но вы не позволите внешнему приложению изменять атрибут баланса. Таким образом, объявив атрибут баланса закрытым, вы ограничите доступ к балансу из внешнего приложения.

Сокрытие данных также уменьшает сложность системы. Сокрытие данных может быть достигнуто посредством инкапсуляции, поскольку инкапсуляция является подпроцессом скрытия данных.

Определение инкапсуляции

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

Давайте разберемся с инкапсуляцией на примере автомобиля. Если водитель автомобиля хочет изменить передачу автомобиля, ему просто нужно изменить положение рабочих механизмов печени, и это, таким образом, меняет передачу автомобиля. Водителю не нужно понимать сложность того, что является механизмом переключения передач. Именно так инкапсуляция уменьшает сложность системы. Инкапсуляция делает систему проще в эксплуатации для конечного пользователя.

Ключевые различия между сокрытием данных и инкапсуляцией

  1. Инкапсуляция связана с сокрытием сложности программы. С другой стороны, скрытие данных связано с безопасностью данных в программе.
  2. Инкапсуляция фокусируется на упаковке (инкапсуляции) сложных данных, чтобы предоставить пользователю более простое представление. С другой стороны, сокрытие данных направлено на ограничение использования данных с целью обеспечения безопасности данных.
  3. В инкапсуляции данные могут быть общедоступными или частными, но при скрытии данных данные должны быть только частными .
  4. Сокрытие данных является процессом, а также техникой, тогда как инкапсуляция является подпроцессом в сокрытии данных.

Заключение:

В заключение я хочу сказать, что сокрытие данных и инкапсуляция важны для реализации системы. И то, и другое идет рука об руку, когда скрытие данных фокусируется на безопасности данных, а инкапсуляция фокусируется на уменьшении сложности системы, чтобы сделать приложение более удобным для пользователя.

Top