Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шаврин С.М. Моделирование и проектирование ИС.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.47 Mб
Скачать
  1. Объектный подход

    1. Сущность и основные принципы объектного подхода

Тематический контекст

Краткое содержание

  1. Сущность объектно-ориентированного подхода.

  2. Базовые принципы объектно-ориентированного подхода: уникальность, классификация, инкапсуляция, наследование, полиморфизм.

  3. Плюсы и минусы объектно-ориентированного подхода.

Первые объектно-ориентированные методы появились в начале 80‑х гг. XX в., однако основные результаты были получены спустя 10 лет, когда Айвар Джекобсон, Джим Рембо и Грейди Буч представили свои подходы – Objectory, OMT (Object Modeling Technique – техника объектного моделирования) и Booch соответственно. Эти три метода были впоследствии объединены в один, из которого вырос унифицированный язык моделированияUML (Unified Modeling Language).

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

Определение. Объект – это самостоятельная, самодостаточная сущность, обладающая состоянием, поведением и семантикой.

Принципы объектно-ориентированного подхода. Объектно-ориентированному подходу присуще большинство принципов структурного подхода, а именно: «разделяй и властвуй», абстрагирование, формализация и непротиворечивость. Кроме того, выделяются следующие специфичные для него принципы:

  1. Уникальность. Каждый объект уникален. Это самый базовый принцип, о котором многие даже не задумываются. Он означает, что никакие два даже абсолютно идентичных объекта нельзя считать одним и тем же объектом. Например, математика не различает два числа «5», однако в рамках объектно-ориентированного подхода два объекта, каждый из которых представляет число «5», будут различными. В терминах языков программирования это означает, что каждый объект имеет свой адрес в памяти, и две объектные переменные считаются равными только в том случае, если они указывают на один и тот же адрес.

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

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

  4. Наследование. Наследование означает, что классы могут объединяться в иерархии наследования. Структура, поведение и семантика объектов наследуются вниз по иерархии. Наверху находятся более общие классы, внизу – более специфичные. Для наследования действует «правило подстановки». Суть его сводится к тому, что с объектами классов-потомков (специфичных) можно работать через интерфейс класса-родителя (общего), т.е. вместо объектов родителя можно подставлять объекты любого потомка.

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

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

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

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

Вопросы для самоконтроля

  1. В чем заключается сущность объектно-ориенти­ро­ван­ного подхода?

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

  3. Что такое уникальность, классификация, инкапсуляция, наследование и полиморфизм?

  4. Почему в рамках объектно-ориентированного подхода возможно использование спирального жизненного цикла?

  5. На что тратится дополнительное процессорное время при использовании объектно-ориентированного подхода?

  6. В чем преимущества объектно-ориентированного подхода перед структурным подходом?