Учебники

OOAD — Объектно-ориентированные принципы

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

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

  • абстракция
  • Инкапсуляция
  • модульность
  • иерархия

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

  • Typing
  • совпадение
  • Упорство

абстракция

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

Грэди Буч определил абстракцию следующим образом:

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

Пример. При разработке класса Student включаются атрибуты enrolment_number, name, course и address, в то время как такие характеристики, как pulse_rate и size_of_shoe, исключаются, поскольку они не имеют значения для перспективы образовательного учреждения.

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

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

модульность

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

«Модульность — это свойство системы, которая была разложена на набор связных и слабо связанных модулей».

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

иерархия

По словам Грэди Буча, «Иерархия — это ранжирование или упорядочение абстракции». Посредством иерархии система может состоять из взаимосвязанных подсистем, которые могут иметь свои собственные подсистемы и так далее, пока не будут достигнуты компоненты наименьшего уровня. Он использует принцип «разделяй и властвуй». Иерархия позволяет повторно использовать код.

Два типа иерархий в OOA являются —

  • Иерархия «IS – A» — она ​​определяет иерархические отношения в наследовании, в результате чего из суперкласса может быть получено несколько подклассов, которые могут снова иметь подклассы и так далее. Например, если мы извлекаем класс Rose из класса Flower, мы можем сказать, что роза — это цветок.

  • Иерархия «PART – OF» — определяет иерархические отношения в агрегации, с помощью которых класс может состоять из других классов. Например, цветок состоит из чашелистика, лепестков, тычинок и ковра. Можно сказать, что лепесток — это часть цветка.

Иерархия «IS – A» — она ​​определяет иерархические отношения в наследовании, в результате чего из суперкласса может быть получено несколько подклассов, которые могут снова иметь подклассы и так далее. Например, если мы извлекаем класс Rose из класса Flower, мы можем сказать, что роза — это цветок.

Иерархия «PART – OF» — определяет иерархические отношения в агрегации, с помощью которых класс может состоять из других классов. Например, цветок состоит из чашелистика, лепестков, тычинок и ковра. Можно сказать, что лепесток — это часть цветка.

Typing

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

Два типа набора текста —

  • Строгая типизация — здесь операция над объектом проверяется во время компиляции, как на языке программирования Eiffel.

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

Строгая типизация — здесь операция над объектом проверяется во время компиляции, как на языке программирования Eiffel.

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

совпадение

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

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

Упорство

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