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

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

  • Абстракция показывает только полезные данные, предоставляя самое необходимое.tails, тогда как инкапсуляция оборачивает код и данные для необходимой информации.
  • Абстракция сосредоточена главным образом на том, что должно быть сделано, тогда как инкапсуляция сосредоточена на том, как это должно быть сделано.
  • Абстракция скрывает комplexity, предоставляя вам более абстрактную картину, в то время как инкапсуляция скрывает внутреннюю работу, чтобы вы могли изменить ее позже.
  • Абстракция помогает разделить программу на множество независимых частей, тогда как инкапсуляцию легко изменить в соответствии с новыми требованиями.
  • Сравнивая инкапсуляцию и абстракцию, абстракция решает проблемы на уровне проектирования, а инкапсуляция решает проблемы на уровне реализации.
  • Абстракция скрывает несущественное.tails находятся в коде, тогда как инкапсуляция помогает разработчикам легко организовать весь код.
Разница между абстракцией и инкапсуляцией
Разница между абстракцией и инкапсуляцией в Java

Определение абстракции

Абстракция — это концепция ООП, которая фокусируется только на соответствующих данных объекта. Он скрывает фон деtails и подчеркивает важные данные для сниженияplexность и повысить эффективность. Обычно он сохраняет только ту информацию, которая наиболее важна для данного конкретного процесса. абстракция Метод в основном фокусируется на идее, а не на реальном функционировании.

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

Инкапсуляция — это метод создания комplex система проще в обращении для конечных пользователей. Пользователю не нужно беспокоиться о внутренней деtails и комplexособенности системы. Инкапсуляция — это процесс объединения данных и кода, который работает с данными, в единый объект. Вы можете считать это защитной оболочкой, которая останавливает произвольный доступ к коду, определенному вне этой оболочки.

Абстракция против инкапсуляции
Абстракция против инкапсуляции

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

Вот основное различие между абстракцией и инкапсуляцией:

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

Зачем вам Абстракция?

Вот основные причины, по которым абстракция необходима для объектно-ориентированного программирования:

  • Помогает упростить представление моделей предметной области.
  • Абстракция скрывает несущественное.tails нашел в коде.
  • Абстракция помогает вам разделить программу на множество независимых концепций.
  • Обеспечивает максимальную гибкость при использовании объектов ADT (абстрактный тип данных) в различных ситуациях.

Зачем вам нужна инкапсуляция?

Основными преимуществами инкапсуляции являются

  • Это повышает удобство сопровождения приложения.
  • Предлагает пользователю гибкость, позволяющую очень легко использовать систему.
  • Помогает разработчикам лучше организовать код.
  • Упрощает общий процесс кодирования, поскольку вас интересует только то, что делает другой класс, а не то, как он это делает.
  • Этот метод помогает разработчикам быть более «объективными» и ориентированными на результат.
  • Инкапсулированный код достаточно гибок и его легко изменить в соответствии с новыми требованиями.
  • Инкапсуляция упрощает модульное тестирование.
  • Это позволяет уменьшить связанность модулей и повысить целостность внутри модуля, поскольку все части одного объекта инкапсулированы в одном месте.
  • Инкапсуляция позволяет изменить часть кода, не затрагивая другие части кода.
  • Улучшает читаемость кода приложения.
  • Повышенная безопасность и упрощение обслуживания приложения.
  • Интерфейс инкапсуляции допускает только четко определенное взаимодействие.

Пример абстракции

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

Пример абстракции в ООП
Пример абстракции в ООП

Но не вся вышеуказанная информация необходима для создания банковского приложения.

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

Пример абстракции в ООП
Пример абстракции в ООП

Поскольку мы извлекли/удалили/выбрали информацию о клиенте из более крупного пула, этот процесс называется абстракцией.

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

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

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

Упомянутые выше функции являются функциями большинства смартфонов. Однако вам не обязательно понимать внутреннее функционированиеtails этих функций перед использованием этой программы. Например, вам не нужно знать, как ваша камера рассчитывает гамма-коррекцию или распознает человеческое лицо на изображении. Вам просто нужно изучить интерфейс программного обеспечения. Это инкапсуляция.