Инкапсуляция против Абстракции
Инкапсуляция и абстракция - это две разные, но связанные концепции, которые встречаются в языках ООП (объектно-ориентированного программирования). Инкапсуляция - это концепция объединения данных и поведения в единый объект. С другой стороны, абстракция - это процесс представления того, как сущность ведет себя \ выглядит в отличие от того, как она реализована.
Что такое инкапсуляция?
Инкапсуляция - это процесс объединения данных и операций над ними в единый объект. По сути, это означает, что для доступа к данным должны использоваться определенные предварительно определенные методы. Другими словами, инкапсулированные данные не доступны напрямую. Это гарантирует, что целостность данных сохраняется, потому что пользователь не может напрямую обращаться к данным и изменять их по своему усмотрению. Пользователи будут получать или устанавливать значения данных только с помощью методов, которые являются общедоступными для пользователей. Эти методы обычно обеспечивают проверку данных, так что только поля в соответствующем формате могут быть вставлены в поля. Таким образом, преимущества инкапсуляции в три раза. С помощью Encapsulation программист может создавать поля класса только для чтения или только для записи. Во-вторых, класс может иметь полный контроль над тем, что хранится в его полях. Наконец, пользователям класса не нужно беспокоиться о том, как хранятся его данные. В Java программист может объявить все переменные экземпляра частными и предоставить методы get и set (которые являются общедоступными) для доступа и изменения приватных полей..
Что такое абстракция?
Абстракция - это процесс отделения деталей презентации от деталей реализации. Это сделано для того, чтобы разработчик избавился от более сложных деталей реализации. Вместо этого программист может сосредоточиться на представлении или поведенческих деталях объекта. Проще говоря, абстракция фокусируется на том, как можно использовать определенную сущность, а не на том, как она реализована. Абстракция по существу скрывает детали реализации, так что даже если методология реализации меняется со временем, программисту не придется беспокоиться о том, как это повлияет на его программу. Система может быть разделена на несколько уровней или уровней. Например, низкоуровневые уровни абстракции будут раскрывать детали оборудования, а высокоуровневые абстракции - только бизнес-логику сущности. Термин абстракция может использоваться для обозначения как сущности, так и процесса, и это приводит к некоторой путанице. Как процесс, абстракция означает извлечение существенных деталей, игнорируя несущественные детали предмета или группы предметов, в то время как в качестве сущности абстракция означает модель или представление сущности только с существенными деталями. В Java программист может использовать ключевое слово abstract для объявления класса как абстрактной сущности, которая представляет основные определяющие характеристики сущности реального мира.
В чем разница между инкапсуляцией и абстракцией?
Хотя инкапсуляция и абстракция являются тесно связанными понятиями, которые можно найти в языках объектно-ориентированного программирования, они имеют ключевые различия. Абстракция - это техника, которая помогает нам определить, что должно быть видно, а что скрыто. Инкапсуляция - это методы упаковки информации таким образом, что она делает видимым то, что должно быть видимым, и скрывает то, что должно быть скрыто. Другими словами, Инкапсуляция может быть идентифицирована как один шаг после абстракции. Хотя абстракция сводит объект реального мира к его основным определяющим характеристикам, инкапсуляция расширяет эту идею, моделируя и связывая эту функциональность этого объекта..