Rational Rose для разработчиков и ради разработчиков


Ассоциации с ограниченной множественностью - часть 4


// Additional Implementation Declarations //## begin NewString%39FD296801A9.implementation preserve=yes //## end NewString%39FD296801A9.implementation };

//## begin NewString%39FD296801A9.postscript preserve=yes //## end NewString%39FD296801A9.postscript

// Class NewString

//## Get and Set Operations for Associations (inline)

inline const UnboundedSetByReference<String> New-String::get_the_String () const { //## begin NewString::get_the_String%39FD300C0348.get preserve=no return the_String; //## end NewString::get_the_String%39FD300C0348.get }

inline void NewString::set_the_String (UnboundedSetByReference<String> value) { //## begin NewString::set_the_String%39FD300C0348.set preserve=no the_String = value; //## end NewString::set_the_String%39FD300C0348.set }

//## begin module%39FD296801A9.epilog preserve=yes //## end module%39FD296801A9.epilog

#endif

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

Лаконичным завершение данного вида связи можно считать связь один к:. В нашем случае 1 к 6

Рис.6

При этом код будет выглядеть следующим образом

ФАЙЛ NEWSTRING.h

* * *

private: //## implementation // Data Members for Associations

//## Association: <unnamed>%39FD4614028A //## begin NewString::<the_String>%39FD461502A0.role preserve=no public: String {1 -> 6RHN} String *the_String[6];

//## end NewString::<the_String>%39FD461502A0.role

// Additional Implementation Declarations //## begin NewString%39FD296801A9.implementation preserve=yes //## end NewString%39FD296801A9.implementation

* * *

Таким же образом можно сгенерировать любой вид связи. Скажем, разработчику ничего не мешает определить связь 6 к 6 или 10 к 10. Код, сгенерированный системой, при этом будет выглядеть как "положено":




- Начало -  - Назад -  - Вперед -



Книжный магазин