3、通過實例來應用Together(二)
下面主要是用來建立靜態類圖。打開缺省的圖( ),在工具箱內選擇Class( ),然後在圖中建立一個類“Store”。選擇該對象,按F4打開屬性窗口,點擊Stereotype右側的按鈕選擇原型為“Place”(地點,表明錄像店的性質),重復以上的步驟,將Clerk置成“Role”(角色),將“Item”置成“Description”(說明)。
另外,可以直接在圖上擊右鍵,選擇Add-> Class,或者在Model視圖中,右擊根結點,然後選擇Add-> Class。
靜態類圖建立完畢,如圖十五:
圖十五:初始靜態類圖
為一個Class創建成員:右擊Store,並選擇Add-> Field,添加一個新的屬性,並對其賦值:address:string。點擊F4鍵,可以彈出屬性編輯窗口,點擊其中的Visibility域,並從下拉列表中選擇Private屬性。缺省的情況下,Together VS.NET會創建public int域及public void方法。
為Store添加方法,右擊Store類並選擇Add-> Method,使用內嵌的編輯器為方法命名為:findByTitle。關於所填寫的各個類的屬性及方法可參考表一。最終的Store如圖十六所示:
圖十六:Store類的構成
Class 表一:各類的屬性及方法
圖十七:設定屬性別名
可以通過Ctrl+W鍵來添加一個屬性,Ctrl+M來添加一個方法,並利用F2鍵來進行命名或重命名工作。
選擇storeNumber屬性,在屬性窗口中的alias裡面可以設定其別名,如:“Store Number”,如圖十七。當然,你也可完全可以設定一個中文的別名,以利於交流。點擊右鍵選擇Goto Definition可以查看Together生成的代碼(如圖十八)
圖十八:Together自動生成的代碼及別名
創建關系與連接。在該實例中存在兩個關系:一是Clerk關聯到Store,一是Store包括若干個Items。Clerk與Store之間的關系類似於“客戶”與“供應商”之間的關系,而對於Store和Items則明顯的是一個聚合關系(Aggragation)。點擊Association Link按鈕,而後點擊Store並拖至Clerk,此行為會為所謂的客戶與供應商之間建立關系(圖十九):
圖十九:在Store與Clerk之間建立關系
在Store與Item之間另一新的關聯,使用屬性窗口來定義連接的類型,從Type屬性中定義Aggregation屬性。
創建超級鏈接。Video Store有一個方法findByKeywords用以查找錄像帶。通過使用超級鏈接,可以快速確定圖與元素的關系類型並將其在模型中記錄下來,以用於其他的用例中。打開用例圖,右擊“Find Item by Keywords”用例,選擇Hyperliks-> Edit,會出現一個對話框(圖二十),從“Available Content”面板中選擇Video Store-> Store-> findByKeywords,然後點擊Add按鈕將所選元素加入到右側面板,點擊OK,此時,新建立的用例超級鏈接會以藍色字體顯示(圖二十一)。
圖二十:超級鏈接對話框
圖二十一:建立完成超級鏈接之後的用例圖
創建序列圖。序列圖用於設計對象模型的動態效果。在Model視圖,右擊Video Store根節點,Add-> Other diagram,在彈出的對話框中選擇“Sequence Diagram”,重命名為“Rent Movie Sqquence”,並點擊OK。從ToolBox中選擇“UML Interaction Diagram”,點擊Actor按鈕,放置到圖中,重命名為“Clerk”,點擊對象按鈕,並點擊Actor時間線的右側,將該對象重命名為“theStore”。點擊工具盒中的“Message”按鈕,增加一個消息連接,並從Actor的時間線拖動到theStore的時間線,完成該序列圖(圖二十二):
圖二十二:序列圖
右擊theStore對象,選擇Choose class-> Store,最終的序列圖會顯示出來,注意此時的對象名稱已經關聯到對應的類中了。點擊消息鏈,選擇Choose method-> findByTitle():void,將消息鏈與一個方法聯系起來(圖二十三):
圖二十三:消息鏈與方法進行關聯
在序列圖與協作圖之間進行轉換。在序列圖上右擊,選擇“Show as Collaboration”菜單命令,打開協作圖,此時,在工具箱內會顯示與協作圖相關的作圖工具。在協作圖上右擊鼠標,則可以通過上下文菜單轉換到序列圖中。
4、Together的擴展應用之一:對模式的支持
Together支持常用的模式,像“四人幫”(這個詞也許只有咱們中國的程序才可以想得出來,呵呵)提出的那個著名的23種設計模式。設計人員可以使用模式來創建或修改已存在的連接和類。
在下面的例子中,假設Item需要一個動態系統,那麼一個Item被返回後,計數器被更新及其他系統得到通知。應用Observer(觀察模式)到Item類,可以實現這些功能。
右擊Video Store類圖,選擇“Apply Pattern”,一個模式向導對話框會打開(圖二十四):