На этом шаге рассмотрим объекты и роли во взаимодействии.
Объекты, которые участвуют во взаимодействии, могут быть либо конкретными сущностями, либо прототипами. Как конкретные сущности они выражают вполне определенные реалии. Например, p – экземпляр класса Person (Человек) – описывает конкретное лицо. С другой стороны, как прототипная сущность p может представлять любой экземпляр класса Person.
В кооперациях взаимодействия часто связывают не объекты реального мира, а прототипные сущности, играющие определенные роли, хотя иногда бывает удобно описать кооперации и между конкретными объектами.
В контексте взаимодействия вы можете обнаружить экземпляры классов, компонентов, узлов и вариантов использования. Хотя абстрактные классы и интерфейсы по определению не могут иметь прямых экземпляров, их экземпляры можно представить во взаимодействии. Последние не являются прямыми экземплярами абстрактных классов или интерфейсов, но могут представлять, соответственно, косвенные, или прототипные, экземпляры любых конкретных потомков абстрактного класса либо некоего конкретного класса, реализующего интерфейс.
Вы можете рассматривать диаграмму объектов как представление статического аспекта взаимодействия, устанавливающее стадию взаимодействия посредством специфицирования всех объектов, которые работают вместе. Между тем взаимодействие идет еще дальше, представляя динамическую последовательность сообщений, которые могут передаваться по ссылкам, соединяющим данные объекты.
На следующем шаге рассмотрим ссылки и коннекторы во взаимодействии объектов.