Читаем Введение в объектно-ориентированный дизайн с Java полностью

Давайте возьмем понятие человека. Каковы основные характеристики человека?

Это, трудно сказать, потому что человек настолько расплывчатое понятие, и мы не сказали, какова цель нашего человека.

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

Например, если вы создаете приложение для вождения, вы должны описать человека в контексте водителя.

В другом примере, если вы создаете приложение для ресторана, тогда вы должны описывать человека в контексте клиента.

Вам решать какую выбрать абстракцию, наиболее подходящую для вашей цели.

Прежде чем мы начнем создавать абстракцию, нам нужен контекст для нее.

Контекст имеет решающее значение при формировании абстракции.

После определения контекста и абстракции, мы определяет характеристики или атрибуты абстракции.

И в дополнение к атрибутам абстракция должна описывать базовое поведение концепции.

Всякий раз, когда мы создаем абстракцию, нам нужно помнить о контексте.

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



Инкапсуляция является фундаментальным принципом в объектно-ориентированном моделировании и программировании.

Есть много вещей, которые вы можете представить, как объекты.

Например, вы можете представить курс как объект.

Объект курса может иметь значения атрибутов, такие как определенное количество учащихся, стоимость и предварительные условия, а также конкретные поведения, связанные с этими значениями атрибутов.

И класс курса определяет основные атрибуты и поведение всех объектов курса.

Инкапсуляция включает в себя три идеи.

Как следует из названия, речь идет о создании своего рода капсулы. Капсула содержит что-то внутри.

И некоторое из этого что-то вы можете получить снаружи, а некоторое вы не можете.

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

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

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

Короче говоря, инкапсуляция формирует автономный объект путем связывания данных и функций, которые он требует для работы, предоставляет интерфейс, посредством которого другие объекты могут обращаться к нему и использовать его, и ограничивает доступ к некоторым внутренним деталям.

И вы определяете класс для данного типа объекта.

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

Инкапсуляция гарантирует, что эти характеристики объединены вместе в одном классе.

Отдельные объекты, созданные таким образом из определенного класса, будут иметь свои собственные значения данных для атрибутов и будут демонстрировать результат поведения.

Вы обнаружите, что программирование проще, когда данные и код, который управляет этими данными, расположены в одном месте.

Данные объекта должны содержать только то, что подходит для этого объекта.

Помимо атрибутов, класс также определяет поведение через методы.

Для объекта класса методы управляют значениями атрибутов или данными в объекте для достижения фактического поведения.

Вы можете предоставить определенные методы для доступа объектам других классов, таким образом, предоставляя интерфейс для использования класса.

И инкапсуляция помогает с целостностью данных.

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

И на практике вы часто представляете внешний доступ ко всем атрибутам через определенные методы.

Таким образом, значения атрибутов объекта не могут быть изменены непосредственно через назначения переменных.

В противном случае такие изменения могут нарушить некоторое допущение или зависимость для данных внутри объекта.

Кроме того, инкапсуляция может обеспечить конфиденциальность информации.

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

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

Инкапсуляция помогает с изменениями программного обеспечения.

Доступный интерфейс класса может оставаться неизменным, а реализация атрибутов и методов может измениться.

Пользователям, использующим класс, не нужно заботиться о том, как реализация фактически работает за интерфейсом.

В программировании такого рода подход обычно называют черным ящиком.

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

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

Перейти на страницу:

Похожие книги

Самоучитель UML
Самоучитель UML

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

Александр Васильевич Леоненков , Александр Леоненков

Зарубежная компьютерная, околокомпьютерная литература / Программирование / Прочая компьютерная литература / Книги по IT
От «кирпича» до смартфона
От «кирпича» до смартфона

Перед вами уникальное исследование мира мобильной индустрии, превращенное его автором Эльдаром Муртазиным, ведущим аналитиком Mobile Research Group и главным российским специалистом по мобильным телефонам, в захватывающий бизнес-триллер. Гигантские компании — Nokia, Motorola, Samsung бросают на мобильный фронт колоссальные силы, создают альянсы, охотятся за лучшими специалистами, шпионят друг за другом. Разработки ведутся в обстановке строжайшей секретности. Цель — выпустить на рынок новую, уникальную модель раньше конкурентов или даже полностью изменить наше представление о мобильном телефоне, как это недавно удалось Apple со своим iPhone.Эта книга предназначена для тех, кто видит в мобильном телефоне не просто средство связи, а чудо инженерной мысли, смелое воплощение дизайнерских фантазий, символ нашей эпохи.

Эльдар Викторович Муртазин , Эльдар Муртазин

Справочная литература / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии