Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 400107.doc
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
568.32 Кб
Скачать
  1. Построение программного обеспечения по объектно-ориентированной методике

2.1. Функционирование объектно-ориентированного программного обеспечения

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

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

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

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

Объект может:

воздействовать на другие объекты, но сам никогда не подвергается воздействию других объектов (активный объект, О1, О4 на рис. 2.1.);

подвергаться воздействию со стороны других объектов, но никогда не выступает в роли воздействующего объекта (О3 на рис. 2.1.);

выступать в обеих ролях (О2 на рис. 2.1.).

Рис. 2.1. Передача сообщений между объектами

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

2.2. Классы. Отношения между классами

Объекты в реальном мире не существуют самостоятельно. Каждый объект – представитель некоторого класса объектов. Класс – это абстракция, отражающая существенные свойства множества объектов. Например, объект прямоугольный треугольник с катетами 4 и 5 является элементом класса “Прямоугольные треугольники”. Все свойства класса “Прямоугольные треугольники” безо всяких ограничений остаются в силе для любого объекта этого класса. Сравним характерные черты классов и объектов.

Состояние класса определяется перечнем всех возможных его свойств (атрибутов) и, возможно, значениями некоторых из них (в классе “Прямоугольные треугольники” задано значение одного угла). Значения всех свойств могут быть заданы, это превращало бы класс в объект.

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

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

Абстракцию, в принципе, можно провести и среди множества классов, выделяя существенные свойства. Таким образом получим суперкласс, элементами которого являются уже не объекты, а классы. Описанный процесс может быть продолжен, в результате возникает многоуровневая древовидная структура, на нижнем уровне которой находятся объекты, на всех остальных уровнях – классы. Такая структура соответствует традиционной классификации с установлением между классами родо-видовых отношений. Родо-видовое отношение связывает более общее (родовое) понятие с менее общим (видовым) понятием. Все свойства (структура, поведение) родового понятия должны остаться в силе для всех его видовых понятий. Пример классификации приведен на рис. 2.2.

Треугольники

Равнобедренные Прямоугольные

Классы Равносторонние

Объекты АВС АВ=3 АС=5

Рис. 2.2. Пример классификации

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