Пиши Дома Нужные Работы

Обратная связь

Виды отношений между объектами

В поле зрения разработчика ПО находятся не объекты-одиночки, а взаимодейству­ющие объекты, ведь именно взаимодействие объектов реализует поведение систе­мы. У Г. Буча есть отличная цитата из Галла: «Самолет — это набор элементов, каж­дый из которых по своей природе стремится упасть на землю, но ценой совместных непрерывных усилий преодолевает эту тенденцию». Отношения между парой объектов основываются на взаимной информации о разрешенных операциях и ожи­даемом поведении. Особо интересны два вида отношений между объектами: связи и агрегация.

Связи

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

• объект-клиент вызывает операции объекта-поставщика;

• один объект перемещает данные к другому объекту.

Можно сказать, что связи являются рельсами между станциями-объектами, по которым ездят «трамвайчики сообщений». Связи между объектами показаны на рис.5 с помощью соединительных линий. Связи представляют возможные пути для передачи сообщений. Сами сообщения показаны стрелками, отмечающими их направления, и помечены именами вызы­ваемых операций.

Как участник связи объект может играть одну из трех ролей:

• актер — объект, который может воздействовать на другие объекты, но никогда не подвержен воздействию других объектов;

• сервер — объект, который никогда не воздействует на другие объекты, он толь­ ко используется другими объектами;

• агент — объект, который может как воздействовать на другие объекты, так и ис­пользоваться ими. Агент создается для выполнения работы от имени актера
или другого агента.



 

На рис. 5 Том — это актер, Мери, Колонки — серверы, Музыкальный центр — агент.

 

 

 

 

 

 

 

 

 

 

 

Актер   Сервер  
Том танцевать() Мери  
     
   
   
          Сервер  
Муз. центр звучать() Колонки  
Агент    
   
   
           

Рис.5. Связи между объектами

2.Агрегация

Связи обозначают равноправные (клиент-серверные) отношения между объектами Агрегация обозначает отношения объектов в иерархии «целое/часть». Агрегация обес­печивает возможность перемещения от целого (агрегата) к его частям (свойствам).

Агрегация может обозначать, а может и не обозначать физическое включение час­ти в целое. На рис.6 приведен пример физического включения (композиции) частей (Двигателя, Сидений, Колес) в агрегат Автомобиль. В этом случае говорят, что части включены в агрегат по величине.

На рис.7 приведен пример нефизического включения частей (Студента, Препо­давателя) в агрегат Колледж. Очевидно, что Студент и Преподаватель являются эле­ментами Вуза, но они не входят в него физически. В этом случае говорят, что части включены в агрегат по ссылке.

Целое

Автомобиль
Корпус

 

       
   
 
 


Двигатель
Сиденья
 
Колеса
 


часть часть часть

Рис.6. Физическое включение частей в агрегат

Рис.7. Нефизическое включение частей в агрегат

Итак, между объектами существуют два вида отношений — связи и агрегация. Ка­кое из них выбрать? При выборе вида отношения должны учитываться следующие факторы:

• связи обеспечивают низкое сцепление между объектами;

• агрегация инкапсулирует части как секреты целого.

 

Классы

Понятие, характеристика

 

Понятия объекта и класса тесно связаны. Тем не менее, существует важное разли­чие между этими понятиями. Класс — это абстракция существенных характерис­тик объекта. Класс — описание множества объектов, которые разделяют одинаковые свойства, опе­рации, отношения и семантику (смысл). Любой объект — просто экземпляр класса. Как показано на рис. 8, различают

• внутреннее представление класса (реализа­цию)

• внешнее представление класса (интерфейс).

Интерфейс объявляет возможности (услуги) класса, но скрывает его структуру и поведение. Иными словами, интерфейс демонстрирует внешнему миру абстрак­цию класса, его внешний облик. Интерфейс в основном состоит из объявлений всех операций, применимых к экземплярам класса. Он может также включать объявления типов, переменных, констант и исключений, необходимых для полно­ты данной абстракции. КЛАСС
интерфейсные
Части Публичная
    Защищенная
    Приватная
Реализация

 

 

       
 
 
   

 

 


Рис. 8. Структура представления класса

Интерфейс может быть разделен на 3 части:

  1. публичную (public), объявления которой доступны всем клиентам;
  2. защищенную (protected), объявления которой доступны только самому классу,его подклассам и друзьям;
  3. приватную (private), объявления которой доступны только самому классу и его
    друзьям.

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

Реализация класса описывает секреты поведения класса. Она включает реализа­ции всех операций, определенных в интерфейсе класса.






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.