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

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

-отношения использования или старшинства и

-отношения включения или родства.

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

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

-исполнение, в этом случае объект подвергается воздействию со стороны другого объекта, никогда не выступая в роли активного,

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

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

объект-транслятор – пассивный объект с одним каналом управления,

блокированный объект – пассивный объект с несколькими каналами управления,

параллельный объект – активный объект с несколькими каналами управления.

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

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

        1. Классы.

В то время, как объекты отражают конкретную сущность, определенную в пространстве и во времени, класс определяет абстракцию, которая отражает сущность объекта. Т.о. класс – это группа или множество объектов с общими свойствами или свойством.

С точки зрения ООD можно дать следующее определение: класс – это множество объектов, связанных общностью структуры и поведения.

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

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

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

Интерфейсную част класса можно разделить на три составляющие:

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

-защищенная, где даются определения, видимые только для объектов, относящихся к подклассам данного класса,

-обособленная, в которой даются определения, скрытые для объектов всех других классов.