ГОСТ Р ИСО/МЭК 10746-1-2004
n
подклассу класса, к которому относятся объекты-компоненты (в частности, когда объекты пред
ставляют коммуникационные услуги, а составной объект добавляет возможности одному из своих
компонентов).
7.2.2 П о в е д е н ч е с к а я с о в м е с т и м о с т ь
Говорят, что один объект является поведенчески совместимым с другим в некоторой среде,
если первый объект может заменить второй так. что среда не сможет выявить различие. Любая
конкретная интерпретация поведенческой совместимости будет налагать ограничения на допустимое
поведение среды. Общий подход заключается в принятии того, что среда ведет себя как тестер для
исходного объекта. Это означает, что среда должна быть всостоянии полностью осуществить исход
ное поведение, но не более того. Такое предположение является существенным, когда нужно рас
смотреть поведенческую совместимость в контексте некоторой неизвестной среды.
7.2.3 Т и п и к л а с с
Тип яатяется предикатом (т.е. свойством или множеством свойств) совокупности (объектов,
интерфейсов и пр.). Например, «яатяется красным» —это тип. Говорят, что нечто удоатетворяет
типу или относится к типу, если для него справедлив предикат. Элементы могут быть весьма рахтич-
ны, но будут удоатетворять одному и тому же типу: для этого они должны демонстрировать свой
ства. предписанные типом. Например, конкретный флаг, конкретный кирпичный дом и конкрет
ный спортивный автомобиль могут быть красными.
Типы неявно подразделяют элементы на множества, называемые классами; класс является
совокупностью элементов со свойствами, предписанными типом.
Понятие типа очень общее и может быть специализировано различными способами. Оно по
лезно влюбом контексте, где необходимо рассматривать или проверять свойства элементов (напри
мер, при торге или связывании).
Понятия типа и класса приводят к естественным иерархиям класс/подкласс и тип/подтип.
Различие класс/подкласс соответствует интуитивному различию в теории множеств между множе
ством и подмножеством. Один класс является подклассом другого только в
to
!случае, если первый
яаляется подмножеством последнего. Один тип является подтипом другого, если предикаты
первого типа влекут за собой предикаты второго.
Подклассы и подтипы тесно связаны. Для каждого типа имеется соответствующий класс (кото
рый может быть пустым). Таким образом, если есть два типа Т1и Т2, тодолжны быть и два соответ
ствующих класса С1 и С2. Если Т1 яатяется подтипом Т2, то С1 яатяется подклассом С2.
7.2.4 Ш а б л о н ы
Шаблон описывает совокупность элементов (объектов, интерфейсов и пр.) достаточно под
робно для реализации из него нового элемента.
Когда шаблон описывает множество объектов, то он описывает такие характеристики, как
параметры состояния, операции и поведение. Обычно реализация объекта вызывает установку на
чального состояния, например объект «буфер» должен быть создан с пустым содержимым.
Понятие поведенческой совместимости применимо и к шаблонам объектов в том смысле, что
имеется поведенческая совместимость между двумя шаблонами объектов, если объекты, реализо
ванные по эти\! шаблонам, являются поведенчески совместимыми.
Тип шаблона яатяется предикатом, определенным в шаблоне. Тип шаблона удовлетворяется
всеми реализациями шаблона и в общем случае может удоатетворяться некоторыми другими эле
ментами, если они удоатетворяют тем же требованиям, что и реализации. Например, тип шаблона
может быть определен так, что объекты, реатизованные из разных шаблонов, но удовлетворяющие
этому типу шаблона, демонстрируют поведенческую совместимость.
Каждый тип шаблона приводит к возникновению класса шаблонов — множества экземпляров
типа шаблона. Классы шаблонов могут образовывать иерархии подклассов всоответствии с отноше
ниями тип/подтип между типами шаблонов.
7.2.5 Р о л и
Роль идентифицирует в шаблоне для составного объекта поведение, которое должно быть
связано с одним из объектов-компонентов.
Роль может соответствовать подмножеству полного поведения объекта-компонента. Когда объект
рассматривается в терминах роли, то рассматриваются только действия указанного подмножества,
абстрагируясь от других действий, возможно относящихся к другим ролям. Объект-компонент мо
жет иметь в данное время несколько ролей, в зависимости от его взаимодействий, и может иметь
разные роли в разное время. Эти роли могут быть связаны с интерфейсами.
12