P3_C14-16:面向對象設計

On to Object Design


閱讀書上第14章oop

三種設計對象的方式

  1. code
  2. draw, then code
  3. only draw

編碼前會是UML須要話費多少時間

  • 幾個小時至多1天

Designing objects

  • 動態建模:交互圖(順序圖或通訊圖等)
  • 靜態建模:最多見的UML類圖

Fundamental object design

  • principle of responsibility assignment
  • design patterns

UML interaction diagrams


閱讀書上第15章編碼

interaction diagrams

  • 描述對象間經過消息的交互,分爲sequence和communications
  • sequence(示例:書上P163)
    • 優點:可以清晰表示消息的順序和時間順序,有大量詳細表示法選項
    • 劣勢:強制在右側增長新對象,消耗水平空間
  • communications(示例:書上P164)
    • 優點:空間效用——可以在二維空間內靈活地增長新對象
    • 劣勢:不易查閱消息的順序,表示法選項比較少

順序圖

  • singleton
    • 在生命線框圖右上角寫 一個「1」標示
  • 基本表示法(書上P166)
    • alt: 互斥的有條件信息
    • loop: 保護信息爲真的循環片斷
    • opt:保護信息爲真的可選片斷
    • par:並行執行的並行片斷
    • region:只能執行一個線程的臨界片斷
    • 構造對象/建立實例:虛線, create消息
  • 對集合的迭代
    • 生命線參與者應該標示一個對象,而不是集合
  • 對類調用靜態(或類)方法的消息
    • 生命線框圖表示接收消息的對象是類,《metaclass》

通訊圖

  • 基本畫法(P175)
    • link:鏈接兩個對象的路徑
    • message:許多消息可能沿同一路徑,消息有id和流向箭頭
  • 實例的建立
    • UML構造型 《create》
    • UML標記值 {new}
  • 消息的順序編號
    • 不爲第一個消息編號
    • 嵌套消息使用附加數字
  • 條件消息 :在順序編號後使用方括表示有條件消息
  • mutually exclusive conditional path
    • eg. 1a[test]和1b[not test]
  • iteration or looping
    • *和可選的迭代子句表示迭代
  • iteration over a collection

UML class diagrams


閱讀書上第16章線程

introduction

  • 靜態對象建模,用類圖表示類、接口及其關聯

design class diagrams(DCD)

  • classifier(類元)
  • ways to show UML attribute
    • 屬性文本、關聯線
    • 默認屬性的可見性爲private
    • 領域模型的關聯線沒有箭頭,類圖的關聯線有箭頭
    • 數據類型對象使用屬性文本表示法,對其餘對象使用關聯線
  • operations and methods
    • 假設當前UML版本中包含了返回值類型
    • 默認操做的可見性爲public
    • 操做是聲明,方法是操做的實現
  • keywords
    • 經常使用關鍵字:《actor》《interface》{abstract} {ordered}
  • stereotypes, profiles, and tags
  • property and property string
    • 如visibility等,也能夠自定義{自定義特性=默認值}
  • abstract classes and abstract operation
    • {leaf}:表示final class和不能被子類複寫的操做
    • {abstr}:抽象類和操做
    • 泛化(generalization):子類到超類的實現和空心三角箭頭
  • singleton classes
    • 框圖右上角標識 1
  • dependency(依賴)
    • 依賴線常出如今類圖和包圖中, 虛線箭頭線
    • 使用依賴線描述對象之間的全局變量、參數變量、局部變量和靜態方法的依賴
  • 接口實現:interface realization
  • composition over aggregation 組合優於聚合
    • 聚合:模糊的關聯, 組合:很輕的總體-部分聚合關係
    • 組合:實心棱形線
      • 在某一時刻,部分的實例只屬於一個組成實例
      • 部分必須老是屬於組合的
      • 組成必需要負責建立和刪除其部分,若是紙質棋盤被銷燬,棋格也將不存在
  • association class
    • 將關聯自己做爲一個類
  • qualified association
相關文章
相關標籤/搜索