取經

          學習Java的過程猶如唐玄奘西天取經的過程,不經歷各種困難是無法取得成功的。
          posts - 8, comments - 1, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          使用UML建模時的3種關系

          Posted on 2005-09-05 23:04 Frank Hou 閱讀(777) 評論(0)  編輯  收藏 所屬分類: UML

          面向對象的建模中3種特別重要的關系:
          依賴(dependency)是一種使用關系,多數情況下指的是一個類把另一個類作為自己操作的參數類型,如:

          dependency.gif

          泛化(generalization)是父類和子類之間的關系,也稱為“is-a-kind-of”關系。沒有父類且最少有一個子類的類稱為根類或基類;把沒有子類的類稱為葉子類。如:

          generalization.gif


          在上圖中Shape是基類,Square、Circle、Polygon是葉子類。

          關聯(association)是一種結構關系,指明了一個事物的對象與另一個事物的對象間的聯系。

          association.gif


          上圖顯示的是取自一個學校的信息系統中的一組類。它描述了以下幾個內容:

          1. 每一名學生可以學習任意門的課程,并且每一門課程也可以有任意名學生來學習。
          2. 每門課至少要有一名教師,每一名教師可以不教課也可以教多門課。
          3. 一所學??梢詻]有學生,或有多名學生,一名學生可以是多所學校的學生,通過聚合關系可以知道School是個整體,StudentSchool的一部分。
          4. 一所學??梢杂幸粋€或多個系,每個系只能屬于一個學校,通過聚合關系可以知道School是個整體,DepartmentSchool的一部分。
          5. DepartmentInstructor之間有兩個關聯。其中一個關聯說明一名教師可以被分配到一個或多個系中,并且一個系可以有一名或多名教師,在學校組織中,系比教師的層次要高,所以這里用聚合來建模。另一個關聯說明一個系只能有一名教師是系主任。

          UML中對關系建模時,要遵循如下策略:

          • 僅當被建模的關系不是結構關系時,才能使用依賴。
          • 僅當關系是“is-a-kind-of”關系時,才使用泛化。往往可以用聚合代替多繼承。
          • 小心不要引入循環的泛化關系。
          • 一般要保持泛化關系的平衡;繼承的層次不要太深(大約多于5層就應該想一想),也不要太寬(代之以尋找可能的中間抽象類)。
          • 在對象間有結構關系的地方,要以使用關聯為主。

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 孟津县| 浮山县| 安多县| 晋州市| 凤冈县| 天台县| 游戏| 江门市| 乌海市| 平阴县| 龙川县| 南部县| 开平市| 来宾市| 赫章县| 鲁甸县| 台前县| 宜章县| 天水市| 安塞县| 沅江市| 高邮市| 绥芬河市| 辽源市| 贵定县| 宁化县| 北辰区| 华池县| 光泽县| 托里县| 电白县| 乌恰县| 宁波市| 准格尔旗| 黄冈市| 中宁县| 科尔| 满洲里市| 永吉县| 灵石县| 阜新市|