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