📄 5associations.html
字号:
<tr>
<td bgcolor="#993300">
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#ffffcc" width="100%">
<tr>
<td bgcolor="#ffffcc"><b>操作步骤</b><b>:</b>
为从 <b>Reservation</b> 到 <b>Ticket</b>
的连接指定适当的势,
规则如下:
<dl>
<dd>一张机票必须关联到一个确定的预约.
一个预约则可能有对应的一张机票,
也可能没有. </dl>
<p>为从 <b>Agent</b> 到 <b>Flight</b>
的连接指定适当的势,
规则如下:</p>
<dl>
<dd>一个代理商可以知道很多航班信息;
一个航班信息也可以提供给很多代理商.
</dl>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p></p>
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#CCCCCC">
<table border="0" cellpadding="5" cellspacing="2">
<tr>
<td valign="top" bgcolor="white">
<p>连接的属性查看器中包含了很丰富的菜单可供修改连接.
使用它可以为连接端分配角色,
也可以使连接成为有方向的.</p>
<p></p>
</td>
<td valign="top" bgcolor="white">
<p><img height="72" width="295" src="images/airline/makedirected.png" alt="Making a link directed"></p>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p></p>
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#993300" width="100%">
<tr>
<td bgcolor="#993300">
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#ffffcc" width="100%">
<tr>
<td bgcolor="#ffffcc"><b>操作步骤:</b>
为 <b>Flight</b>
上的自连接的各个端设置势和角色,
并使这个连接有方向. <ul>
<li>将 supplier
端角色命名为
"actual."
将它的势设置为
0..1.
<li>将 client
端角色命名为
"plan."
将它的势设置为
1.
</ul>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p>最后一步操作, 使用 <b>Flight</b>
自连接的属性查看器实现. </p>
<hr>
<p class="head3"><a name="patterns"></a>将连接修改为聚合</p>
<p>每个 <b>Flight</b>
都拥有一个 <b>Reservations</b>
的集合,
而不是单个的 <b>Reservation</b>. </p>
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#993300" width="100%">
<tr>
<td bgcolor="#993300">
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#ffffcc" width="100%">
<tr>
<td bgcolor="#ffffcc"><b>操作步骤</b><b>:</b>
创建一个从 <b>Flight</b>
到 <b>Reservation</b>
的聚合.</td>
</tr>
</table>
</td>
</tr>
</table>
<p></p>
<table border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#CCCCCC">
<table border="0" cellpadding="5" cellspacing="2">
<tr>
<td valign="top" bgcolor="white"><img src="images/airline/aggregation.png" width="9" height="55" border="0" alt="Aggregation link" hspace="5" vspace="5"></td>
<td valign="top" bgcolor="white">
<p>这个操作很简单.
首先创建一个连接,
从 <b>Flight</b> 开始,
到 <b>Reservation</b> 结束.
然后在新建连接的右键菜单中选择中
"Aggregation".</p>
<p>连接将在 <b>Flight</b>
显示一个菱形箭头.</p>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p>创建新的连接可能会使模型图变得比较混乱.
你可以通过模型图右键菜单(<b>Layout | All</b>)来让 Together
重新排列模型图.
或者你也可以直接拖动连接.</p>
<p>当你选中连接时,
光标将显示为十字(<img src="images/icons/cross.png" width="17" height="17" border="0" align="absmiddle" hspace="1">).
移动光标将改变连接的形状.
如果你在连接的末端移动鼠标,
光标将显示为 4
箭头状(<img src="images/icons/arrow_double.gif" width="19" height="19" border="0" align="absmiddle" hspace="1">).
此时,
你可以将连接的末端移动到另一个类上.</p>
<hr>
<p class="head3"><a name="generalizations"></a>显示继承关系</p>
<p>你现在可以从 <b>Ticket</b>
扩展出两个实体类, <b>Ticket</b>
是抽象类. 你还将为 <b>Agent</b>
和 <b>Reservation</b>
类创建一个接口.</p>
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#993300" width="100%">
<tr>
<td bgcolor="#993300">
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#ffffcc" width="100%">
<tr>
<td bgcolor="#ffffcc"><b>操作步骤</b><b>:</b>
创建一个名为 <b>Coach</b>
的类.
然后完成以下步骤:
<ol>
<li>用 generalization 从 <b>Coach</b>
连接到 <b>Ticket</b>.
<li>将 <b>calcPrice()</b> 从 <b>Ticket</b>
复制到 <b>Coach</b>.
<li>将 <b>Coach</b>
的策略(stereotype)设置为 "thing."
</ol>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p>使用一般化连接按纽<nobr>(</nobr><nobr><img src="images/icons/generalizationicon.png" width="12" height="12" border="0" hspace="1" alt="Generalization icon"></nobr><nobr>)</nobr>
使 <b>Coach</b> 类扩展 <b>Ticket</b> 类.
当你将抽象方法复制到一个实体类时, Together
会在模型图和代码中将其变为实体方法.</p>
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#993300" width="100%">
<tr>
<td bgcolor="#993300">
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#ffffcc" width="100%">
<tr>
<td bgcolor="#ffffcc"><b>操作步骤</b><b>:</b>
将 <b>Coach</b>
类复制一份,
然后重命名为 <b>FirstClass</b>.</td>
</tr>
</table>
</td>
</tr>
</table>
<p>要复制一个类,
在模型图的右键菜单中先使用
"Copy" 命令, 然后使用
"Paste" 命令.
除了名字以外,
新类将与旧类完全一致.
所有的构造函数都被复制为新的名称.
从原来的类开始的所有连接也都被复制了.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -