инкапсуляция - не цель и не причина, инкапсуляция - следствие.
суть в том, что система разбивается на ряд взаимодействующих объектов, каждый из которых отвечает за что-то одно.
допустим, вам нужно положить плитку в ванной. вы можете закупить материалы, нанять отряд чурок и носиться за ними, указывая каждому из них что ему делать в данный момент. а можете распределить ответственности и свалить на неделю - они сами закупят материалы и проконтролируют работу друг друга. в первом случае, получим армейский способ: все делали то, что им приказано, но в итоге сделали херню и виноватых нет. во втором случае получаем муравейник, легко находим виноватого и имеем возможность оперировать более абстрактными понятиями (в то время, как чурки кладут плитку, вы можете организовать замену окон - теперь от "ремонта в ванной" абстрагируемся до "ремонта" вообще) .
вот инкапсуляция - это тогда, когда объект полностью несёт ответственность за своё состояние и заставляет это состояние "работать". оно есть не только в объектной декомпозиции, но и в функциональной (система делится не на объекты и пакеты, а на связанные подсистемы и процессы в них) , и вообще по жизни это хороший подход: мне пох, как и из чего моя приготовит мне ужин - главное, что она сделает его вкусным; лучше я в это время поработаю - так мы достигнем большего.
Другие языки программирования и технологии
Зачем нужна инкапсуляция?
Зачем - ясно из ее определения. В ООП без нее никуда. Позволяет рассматривать каждый модуль, объект или класс, как "черный ящик" с "торчащими наружу" только методами (управляющими функциями) . Это позволяет использующему модуль человеку не особо задумываться что там внутри.
Ответ прост, мы - люди. А человеку свойственно ошибаться. Никто не застрахован от ошибок. Применяя инкапсуляцию, мы, как бы, возводим крепость, которая защищает данные, принадлежащие объекту, от возможных ошибок, которые могут возникнуть при прямом доступе к этим данным. Кроме того, применение этого принципа очень часто помогает локализовать возможные ошибки в коде программы. А это намного упрощает процесс поиска и исправления этих ошибок.
Можно сказать, что инкапсуляция подразумевает под собой скрытие данных (data hiding), что позволяет защитить эти данные.
Cуть инкапсуляции можно определить следующим образом:
Переменные состояния объекта скрыты от внешнего мира. Изменение состояния объекта (его переменных) возможно ТОЛЬКО с помощью его методов (операций).
Можно сказать, что инкапсуляция подразумевает под собой скрытие данных (data hiding), что позволяет защитить эти данные.
Cуть инкапсуляции можно определить следующим образом:
Переменные состояния объекта скрыты от внешнего мира. Изменение состояния объекта (его переменных) возможно ТОЛЬКО с помощью его методов (операций).
Похожие вопросы
- Инкапсуляция, полиморфизм Обясните по проще что такое инкапсуляция и полиморфизм?
- Зачем нужны геттеры и сеттеры? Не нарушают ли они принцип инкапсуляции?
- ИНКАПСУЛЯЦИЯ своими словами? код програмы который зашифровали от всех? как она выглядит в коде программы?
- искала в инете но ничего похожего не нашла..какой ответ верный?Инкапсуляция-это
- ООП: что такое инкапсуляция, абстракция, полиморфизм и наследование?
- Обьясьните пожалуйста кто-нибудь, что такое "Полиморфизм"и "Инкапсуляция"
- Основные принципы ООП: инкапсуляция, полиморфизм, наследование Объясните пожалуйста простыми словами?
- Вопрос по ООП. Инкапсуляция, наследие, полиморфизм. Как понять все это чудо?
- Для чего нужен Нетбук?
- Почему считают что программисту математика не нужна? Откуда взялся этот миф?