banner banner banner
Введение в объектно-ориентированный дизайн с Java
Введение в объектно-ориентированный дизайн с Java
Оценить:
Рейтинг: 0

Полная версия:

Введение в объектно-ориентированный дизайн с Java

скачать книгу бесплатно


Бинарное отношение связывает объекты двух классов.

Тройное отношение связывает объекты трех или более классов.

Мощность бинарной ассоциации обозначает количество экземпляров, участвующих в ассоциации. Существует три типа коэффициента мощности, а именно:

Один-к-одному. Один объект класса A связан с одним объектом класса B.

Один-ко-многим. Один объект класса A связан со многими объектами класса B.

Многие-ко-многим. Объект класса A может быть связан со многими объектами класса B, и, наоборот, объект класса B может быть связан со многими объектами класса A.

Агрегация или композиция – это взаимосвязь между классами, при которой класс может состоять из любой комбинации объектов других классов.

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

Агрегация называется отношением “part–of” или “has–a”, с возможностью навигации от целого к частям.

Агрегатный объект – это объект, состоящий из одного или нескольких других объектов.

Метод объектно-ориентированного моделирования (OOM) визуализирует вещи в приложении с использованием моделей, организованных вокруг объектов.

И любой подход к разработке программного обеспечения проходит через следующие этапы:

Это анализ, дизайн и реализация.

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

И основными этапами разработки программного обеспечения с использованием объектно-ориентированной методологии являются объектно-ориентированный анализ, объектно-ориентированный дизайн и объектно-ориентированная реализация.

На этапе объектно-ориентированного анализа, формулируется проблема, определяются пользовательские требования, а затем модель строится на основе объектов реального мира.

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

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

Объектно-ориентированный дизайн включает в себя два основных этапа, а именно: дизайн системы и дизайн объектов.

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

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

Конструирование системы выполняется на основе как модели анализа, так и предлагаемой архитектуры системы.

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

На этапе дизайна объектов разрабатывается модель на основе как моделей, разработанных на этапе анализа, так и архитектуры, разработанной на этапе дизайна системы. При этом определяются все необходимые классы.

Устанавливаются ассоциации между классами и определяются иерархии классов.

На этапе объектно-ориентированной реализации и тестирования модель дизайна, разработанная при дизайне объектов, преобразуется в код на соответствующем языке программирования.

Создаются базы данных и определяются конкретные требования к оборудованию.

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

Концептуальная структура объектно-ориентированных систем основана на объектной модели.

И объектно-ориентированная система основывается на двух категориях свойств.

Это основные свойства, которые объектно-ориентированная система обязана иметь:

– Абстракция.

– Инкапсуляция.

– Модульность.

– Иерархия.

И дополнительные свойства, которые полезны, но не являются неотъемлемой частью объектной модели:

– Типизация.

– Параллельность.

– Сохраняемость.

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

И основные свойства относятся к контексту, в котором используется объект.

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

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

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

Модульность – это процесс разложения задачи (программы) на набор модулей, чтобы уменьшить общую сложность проблемы.

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

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

Иерархия – это ранжирование или упорядочение абстракции.

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

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

Иерархия использует принцип «разделяй и властвуй».

И иерархия позволяет повторно использовать код.

Двумя типами иерархий являются:

Иерархия «IS-A». Она определяет иерархическую взаимосвязь в наследовании, в которой из суперкласса может быть выведено несколько подклассов, которые могут снова иметь подклассы и т. д.

И иерархия «PART-OF» – определяет иерархическую взаимосвязь в агрегации, посредством которой класс может состоять из других классов.

Согласно теории абстрактного типа данных, тип является характеристикой набора элементов.

В ООП класс визуализируется как тип, имеющий свойства, отличные от любых других типов.

Типизация – это применение понятия о том, что объект является экземпляром одного класса или типа.

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

Два типа типизации – это строгая типизация – здесь операция над объектом проверяется во время компиляции.

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

Операция проверяется только во время выполнения.

Параллельность в операционных системах позволяет одновременно выполнять несколько задач или процессов.

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

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

В объектно-ориентированной среде существуют активные и неактивные объекты.

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

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

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

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

В файлах или базах данных продолжительность жизни объекта больше, чем продолжительность процесса, создающего объект.

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

Принципы ООД (Объектно-ориентированного дизайна)

Если вы хотите построить дом, вы не забьёте и гвоздя без проекта.

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

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

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

На протяжении многих лет люди пробовали множество подходов для упрощения проектирования.

Например, существуют стратегии проектирования, подходящие для решения определенных задач.

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

Эта стратегия отображает процессы обработки данных в задаче на вызовы процедур.

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

И эти процедуры реализуются на определенном языке программирования.

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

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

Реальный мир, где возникают задачи, наполнен объектами. И это привело к популярности объектно-ориентированного программирования.

Но даже здесь вы все равно не переходите сразу от задачи к написанию кода.

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

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

Проектная деятельность происходит итеративно и непрерывно.

Целью дизайна программного обеспечения является построение и доработка моделей всех объектов.

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

Первоначально основное внимание должно быть сосредоточено на объектах сущностей entity из пространства задачи.

По мере появления решения вы вводите объекты управления control, которые принимают события и координируют действия. Вы также вводите пограничные объекты boundary, которые подключаются к службам вне вашей системы.

Модели часто выражаются визуально с помощью унифицированного языка моделирования или UML.

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

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

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

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

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