📄 8sequencediagrams.html
字号:
<tr>
<td bgcolor="#993300">
<table border="0" cellpadding="0" cellspacing="2" bgcolor="#ffffcc" width="100%">
<tr>
<td bgcolor="#ffffcc"><b>操作步骤:</b> 从左到右,
为时序图中的对象选择对应的类(除了角色以外):
<ul>
<li>对 <b>Object2</b>, 选择 <b>Flight</b>
<li>对 <b>Object3</b>, 选择 <b>Reservation</b>
<li>对 <b>Object4</b>, 选择 <b>Ticket</b>
</ul>
<p>然后将最右边的对象(<b>Object4</b>)改名为 <b>lnkTicket</b>.</p>
</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">通过对象右键菜单完成这个步骤.
右图显示了 <b>Object2</b> 的右键菜单. <b><nobr>Choose Class</nobr></b>
中列出了时序图所属的包中的类. (底部的 <b>More</b> 可用来选择包外部的类.)<p>
当你选择类后, 你的时序图将把三个对象及其活动条显示为粉红和绿色策略.</p>
<p><img src="images/airline/sdchangename.png" width="109" height="96" border="0" alt="In-place editor" vspace="5" align="left" hspace="3">修改对象名称的最简单方法是使用内嵌编辑器.</p>
<p></p>
<p></p>
</td>
<td valign="top" bgcolor="white"><img src="images/airline/pro8_rcm_chooseclass.png" width="409" height="264" border="0" alt="Choose class speedmanu" hspace="5"></td>
</tr>
</table>
</td>
</tr>
</table>
<p></p>
<table border="0" cellpadding="0" cellspacing="2">
<tr>
<td><img src="images/airline/sdnewclass.png" width="347" height="50" border="0" alt="New class" align="left" hspace="10" vspace="10">顺便提一下,
对象右键菜单给出了创建新的类或接口的选项. 如果你选择了这些选项, Together 将生成相应的代码,
并修改所有相关的类或包的模型图.</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>
到 <b>Reservation</b> 的消息选择 <b>calcPrice()</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">消息也有右键菜单. <nobr>其中的 <b>Choose Operation</b></nobr>
选项列出了可用的类方法.</td>
<td valign="top" bgcolor="white">
<p><img src="images/airline/pro8_rcm_chooseoperation.png" width="409" height="117" border="0" alt="Choose operation" hspace="5" align="right"></p>
<p></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>
对象的一般消息创建一个新的操作 -- <b>ticketRevenue():double</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">
<p>Properties 选项(消息属性察看器)在消息右键菜单中接近顶部的位置.</p>
<p>当你在属性察看器中指定一个新操作时, Together 显示类似下图的对话框.
对我们的问题, 你应该点击 Create 按钮.</p>
<p><img src="images/airline/pro8_question.png" width="379" height="128" border="0" alt="dialog box" hspace="5" vspace="5"></p>
<p>如果你对已存在的方法改名, Together 的对话框将包含三个按钮: Rename, Create,
和 Cancel.</p>
</td>
<td valign="top" bgcolor="white">
<p><font size="2"><img src="images/airline/pro8_messageinspector.png" width="296" height="319" border="0"></font></p>
</td>
</tr>
</table>
</td>
</tr>
</table>
<p>Together 为时序图提供了显示设置. 从主菜单中选择 <b>Tools | Options | Diagram Level</b>
打开显示设置. 我们的设置如下.<img src="images/airline/pro8_seqdiagramoptions.png" width="645" height="332" border="0" alt="Sequence diagram options" vspace="10" hspace="10"> </p>
<p>我们在模型图中显示消息编号. 你可能希望简化你的模型图, 那么可以不选中 <b>Show message numbers</b> 选项.</p>
<hr>
<p class="head3"><a name="code"></a>在模型图中放置控制代码</p>
<p>在这一节中, 你将修改 <b>Reservation</b> 生命线中的活动条, 以表现如何从预定一个航班中计算收入:</p>
<dl>
<dd>"如果已售出机票, 农民预定一个航班的收入等于机票价格, 否则收入等于0."
<dd>
</dl>
<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>Reservation</b>
的生命线的活动条中放置一个自消息. 为这个消息选择 <b>ticketPurchased()</b>
方法. 将返回值命名为 <b>hasTicket</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">
<p>时序图在 Designer 面板工具条中包含自消息(self-message)按钮<nobr>(</nobr><nobr><img src="images/icons/selflink.gif" width="15" height="15" border="0" alt="self link" hspace="2" align="top"></nobr><nobr>).</nobr>
当你创建自消息后, 选择 <b>ticketPurchased( )</b> 作为它的操作. </p>
<p>对于剩下的操作, 你需要使用消息属性察看器.</p>
<p>属性察看器 Link 页中的 "return" 用于设置返回值的名称. Together
使用这个名称来产生代码. 在我们的任务中, Together 产生的代码如下:</p>
<p><b><nobr>boolean hasTicket = this.ticketPurchased();</nobr></b></p>
</td>
<td valign="top" bgcolor="white">
<ul>
<li><img src="images/airline/pro8_returnvalue.png" width="297" height="322" border="0" alt="Link inspector" hspace="5">
</ul>
</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>Reservation</b>
生命线的活动条中创建两个语句块.
<ol>
<li>在自消息下的活动条中放置一个 <b>if</b> 语句.<ul>
<li>将 <b>if</b> 条件设置为 <b>hasTicket</b>.
</ul>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -