Читать книгу «Введение в объектно-ориентированный дизайн с Java» онлайн полностью📖 — Тимура Машнина — MyBook.
image










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

– Программы организованы вокруг объектов, сгруппированных по классам.

– Акцентирование на данных с методами при работе с данными объекта.

– Взаимодействие объектов через функции.

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

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

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



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

Физическое существование – это например, клиент, автомобиль и т. д .

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

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

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

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

Создание объекта как члена класса называется экземпляром.

Таким образом, объект является экземпляром класса.

Класса состоит из набора атрибутов для объектов, которые должны быть созданы из класса.

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

И класс состоит из набора операций, которые отображают поведение объектов класса.

Операции также называются функциями или методами.



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

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

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

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

Этот процесс изоляции данных объекта называется скрытием данных.

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

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

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

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

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

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

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

Наследование определяет отношение «is-a».

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

Полиморфизм позволяет объектам с разными внутренними структурами иметь общий внешний интерфейс.

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



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

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

Специализация – это обратный процесс обобщения.

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

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

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

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

Ссылка изображает взаимосвязь между двумя или более объектами.

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

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

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

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

Унарное отношение связывает объекты одного и того же класса.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

– Иерархия.

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

– Типизация.

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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