Вход/Регистрация
Введение в объектно-ориентированный дизайн с Java
вернуться

Машнин Тимур Сергеевич

Шрифт:

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

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

Итак, как например, класс продуктов питания выглядел бы в диаграмме классов?

Это представление диаграммы класса продуктов питания.

Каждый класс в диаграмме классов представлен полем.

И каждая диаграмма разделена на три секции, как в CRC-карточке.

Верхняя часть – это имя класса.

Средняя часть – это раздел свойств.

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

И, наконец, нижняя часть – это раздел операций, который эквивалентен методам в классе Java и определяет поведение абстракции.

Свойства, которые эквивалентны переменным-членам Java, состоят из имени переменной и типа переменной.

Типы переменной, как и в Java, могут быть классами или примитивными типами.

Операции, эквивалентные методам Java, состоят из имени операции, списка параметров и типа возвращаемого значения.

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

Некоторые из них стали операцией.

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

Одна из двусмысленностей заключается в том, что CRC-карточка не показывает разделения между свойствами и операциями.

Все они перечислены вместе.

Теперь, когда у нас есть представление диаграммы классов, давайте реализуем его в код Java.

Диаграммы классов очень близки к реализации, что делает перевод на Java очень простым.

Имя класса в диаграмме превращается в класс в Java.

Свойства в диаграмме классов превращаются в переменные-члены.

И, наконец, операции превращаются в методы.

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

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

А тот факт, что они далеки от кода, заставляет вас сосредоточиться на задаче, а не на реализации.

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

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

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

Принцип Инкапсуляции в UML

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

Давайте посмотрим, как применить инкапсуляцию.

Как вы помните, инкапсуляция включает в себя три идеи.

Во-первых, вы объединяете данные и функции, которые управляют данными, в автономный объект.

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

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

Итак, как это выглядит в коде?

И как выглядит в дизайне?

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

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

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

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

  • Читать дальше
  • 1
  • ...
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: