Иерархия использует принцип «разделяй и властвуй».
И иерархия позволяет повторно использовать код.
Двумя типами иерархий являются:
Иерархия «IS-A». Она определяет иерархическую взаимосвязь в наследовании, в которой из суперкласса может быть выведено несколько подклассов, которые могут снова иметь подклассы и т. д.
И иерархия «PART-OF» – определяет иерархическую взаимосвязь в агрегации, посредством которой класс может состоять из других классов.
Согласно теории абстрактного типа данных, тип является характеристикой набора элементов.
В ООП класс визуализируется как тип, имеющий свойства, отличные от любых других типов.
Типизация – это применение понятия о том, что объект является экземпляром одного класса или типа.
Типизация также предусматривает, что объекты разных типов обычно не являются взаимозаменяемыми; и могут быть взаимозаменяемы только в очень ограниченном порядке, если это абсолютно необходимо.
Два типа типизации – это строгая типизация – здесь операция над объектом проверяется во время компиляции.
И слабая типизация – здесь сообщения могут быть отправлены в любой класс.
Операция проверяется только во время выполнения.
Параллельность в операционных системах позволяет одновременно выполнять несколько задач или процессов.
Большинство систем имеют несколько потоков, при этом некоторые активные, а некоторые ждут процессор, некоторые приостановлены и некоторые завершены.
Системы с несколькими процессорами допускают одновременные потоки управления; но системы, работающие на одном процессоре, используют соответствующие алгоритмы для обеспечения равного времени процессора для потоков, чтобы обеспечить параллелизм.
В объектно-ориентированной среде существуют активные и неактивные объекты.
Активные объекты имеют независимые потоки управления, которые могут выполняться одновременно с потоками других объектов.
И активные объекты синхронизируются друг с другом, а также с чисто последовательными объектами.
Объект занимает пространство памяти и существует в течение определенного периода времени.
В традиционном программировании продолжительность жизни объекта обычно была продолжительностью выполнения программы, которая ее создала.
В файлах или базах данных продолжительность жизни объекта больше, чем продолжительность процесса, создающего объект.
Свойство, с помощью которого объект продолжает существовать даже после того, как его создатель перестает существовать, известно, как сохраняемость.
Принципы ООД (Объектно-ориентированного дизайна)
Если вы хотите построить дом, вы не забьёте и гвоздя без проекта.
Аналогичным образом, для решения сложной задачи с помощью программного обеспечения вы не погружаетесь прямо в кодирование.
Вам нужен концептуальный дизайн, чтобы разложить задачу на управляемые части.
И вам также нужен технический дизайн для описания решения, чтобы оно было достаточно понятно разработчикам программного обеспечения.
На протяжении многих лет люди пробовали множество подходов для упрощения проектирования.
Например, существуют стратегии проектирования, подходящие для решения определенных задач.
Если у вас есть задача, связанная с обработкой данных, возможно, вы используете программирование сверху вниз.
Эта стратегия отображает процессы обработки данных в задаче на вызовы процедур.
По мере того, как вы раскладываете необходимые процессы обработки сверху вниз, вы создаете дерево процедур для возможного решения.
И эти процедуры реализуются на определенном языке программирования.
Для многих видов сложных задач имеет смысл подумать о концепциях, использующих объекты.
Например, любое существительное в описании задачи может быть важным объектом.
Реальный мир, где возникают задачи, наполнен объектами. И это привело к популярности объектно-ориентированного программирования.
Но даже здесь вы все равно не переходите сразу от задачи к написанию кода.
Существует концептуальный дизайн, включающий в себя объектно-ориентированный анализ для идентификации ключевых объектов в задаче.
Существует также технический дизайн, включающий в себя объектно-ориентированный дизайн для дальнейшего уточнения деталей объектов, включая их атрибуты и поведение.
Проектная деятельность происходит итеративно и непрерывно.
Целью дизайна программного обеспечения является построение и доработка моделей всех объектов.
И эти модели полезны на протяжении всего процесса проектирования.
Первоначально основное внимание должно быть сосредоточено на объектах сущностей entity из пространства задачи.
По мере появления решения вы вводите объекты управления control, которые принимают события и координируют действия. Вы также вводите пограничные объекты boundary, которые подключаются к службам вне вашей системы.
Модели часто выражаются визуально с помощью унифицированного языка моделирования или UML.
В объектно-ориентированном моделировании у вас есть разные типы моделей или диаграмм UML, чтобы сосредоточиться на различных аспектах программного обеспечения, например, структурная модель, для описания того, что делают объекты и как они связаны.
И структурная модель похожа на масштабную модель здания для понимания пространственных отношений.
Чтобы справиться со сложностью задачи, вы можете применять принципы дизайна для упрощения объектов.
Например, разделить их на более мелкие части и посмотреть на общие черты, которые можно обрабатывать последовательно.
Также необходим постоянный пересмотр и оценка моделей для обеспечения того, чтобы дизайн соответствовал задаче и отвечал целям задачи.