1.理論: 學習UML圖,目前我學的有三種,用例圖,類圖,時序圖。
用例圖:
主要用來描述“用戶、需求、系統功能單元”之間的關係.
主要是業務建模和需求建模。此圖,作爲coder,個人認爲目前瞭解就好。什麼時候做產品經理跟客戶扯淡的時候,在學。
類圖:
泛化(Generalization), 實現(Realization), 關聯(Association), 聚合(Aggregation), 組合(Composition), 依賴(Dependency)
泛化:繼承關係,表示一般與特殊。指定子類如何特化父類的所有特徵和行爲。
三角箭頭實線,指向父類
實現:是一種類與接口的關係, 表示類是接口所有特徵和行爲的實現。
三角箭頭虛線,指向接口
關聯:是一種擁有的關係, 它使一個類知道另一個類的屬性和方法。//關聯可以單向,雙向。單向有箭頭,雙向可以雙箭頭,可以沒有箭頭
普通箭頭實線,指向被擁有者。
代碼體現,成員變量。
聚合:是整體與部分關係,且部分可以離開整體而單獨存在。
空心菱形實線,菱形指向整體
聚合關係是關聯關係的一種,是強的關聯關係;關聯和聚合在語法上無法區分,必須考察具體的邏輯關係。
組合:是整體與部分關係,且部分不能離開整體而單獨存在。
實心菱形實線,菱形指向整體
組合關係是關聯關係的一種,是比聚合關係還要強的關係,它要求普通的聚合關係中代表整體的對象負責代表部分的對象的生命週期
代碼體現:成員變量。
依賴:是一種使用的關係, 即一個類的實現需要另一個類的協助, 所以要儘量不使用雙向的互相依賴.
普通箭頭虛線,指向被使用者
各種關係的強弱順序:
泛化 = 實現 > 組合 > 聚合 > 關聯 > 依賴
下面這張UML圖,比較形象地展示了各種類圖關係:
說明:最上一層是類名,中間一層是屬性名稱,最下一層是方法名稱。
+代表public屬性,-代表private屬性,static,final,暫時往了,先往下寫。
時序圖:
講流程執行的先後發生順序。對象之間交互,是按時間順序排列的。
順序圖中顯示的是參與交互的對象及其對象之間消息交互的順序。
建模元素主要有:角色(Actor)、對象(Object)、生命線(Lifeline)、控制焦點(Focus of control)、消息(Message)
角色:事件的觸發者,可以使人,或者是系統
對象:
對象包括三種命名方式:
第一種方式包括對象名和類名;
第二中方式只顯示類名不顯示對象名,即表示他是一個匿名對象;
第三種方式只顯示對象名不顯示類明。
生命線:
生命線在順序圖中表示爲從對象圖標向下延伸的一條虛線,表示對象存在的時間。
控制焦點:
控制焦點是順序圖中表示時間段的符號,在這個時間段內對象將執行相應的操作。用小矩形表示。
消息:
消息一般分爲同步消息(Synchronous Message),異步消息(Asynchronous Message)和返回消息(Return Message).
找了張羅昇陽分析Android啓動流程的時序圖。