<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無線&移動互聯網技術研發

    換位思考·····
    posts - 19, comments - 53, trackbacks - 0, articles - 283
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    類之間關系的層次

    Posted on 2009-07-12 23:13 Gavin.lee 閱讀(562) 評論(0)  編輯  收藏 所屬分類: 類的設計

    1.首先類之間的關系從宏觀上可以分為:關聯、依賴、繼承,而其中關聯又有兩種特例:聚合和組合,不過在UML2.X中聚合和組合合成一種關系了。

    2.從使用的頻率來看,關聯(包括聚合和組合)關系是使用最為廣泛的;其次是依賴和繼承

    3.關聯和依賴的區別:
    A:從類之間關系的強弱程度來分,關聯表示類之間的很強的關系;依賴表示類之間的較弱的關系;

    B:從類之間關系的時間角度來分,關聯表示類之間的“持久”關系,這種關系一般表示一種重要的業務之間的關系,需要保存的,或者說需要“持久化”的,或者說需要保存到數據庫中的。比如學生管理系統中的Student類和Class(班級)類,一個Student對象屬于哪個Class是一個重要的業務關系,如果這種關系不保存,系統就無法管理。另外,依賴表示類之間的是一種“臨時、短暫”關系,這種關系是不需要保存的,比如Student類和StuEditScreen(學生登錄界面)類之間就是一種依賴關系,StuEditScreen類依賴Student類,依賴Student對象的信息來顯示編輯學生信息。

    C:設計類之間的關系是遵循的原則:首先判斷類之間是否是一種“關聯”關系,若不是再判斷是否是“依賴關系”,一般情況下若不是關聯,就是依賴關系

    D:依賴一般情況下是以下幾種情況之一:a、ClassA中某個方法的參數類型是ClassB;這種情況成為耦合;b、ClassA中某個方法的參數類型是ClassB的一個屬性;這種情況成為緊耦合;c、ClassA中某個方法的實現實例化ClassB;d、ClassA中某個方法的返回值的類型是ClassB;如果出現了上述四種情況之一,兩個類很有可能就是“依賴”關系。

    E:依賴關系(Dependency):是類與類之間的連接,依賴總是單向的。依賴關系代表一個類依賴于另一個類的定義。下面的例子中class A 依賴與class B、C、D。

        public class A{   
            
    public B getB(C c, D d){   
            E e 
    = new E();   
            B b 
    = new B(c, d, e);   
            }
       
        }
     


    F:關聯是一種結構關系,說明一個事物的對象與另一個事物的對象相聯系。給定一個連接兩各類的關聯,可以從一個類的對象導航到另一個類的對象。
    關聯可以有方向,即導航。一般不作說明的時候,導航是雙向的,不需要在線上標出箭頭。大部分情況下導航是單向的,可以加一個箭頭表示。關聯在代碼中一般表示為屬性(成員變量),例如下面例子中 class A與B關聯
     
    public class A{  
        private B b;  
    }  
    如果B也關聯到A,那么它們就是雙向的關聯。
    public class B{  
        private A a;  


    G:聚合關系(Aggregation):是關聯關系的一種,是強的關聯關系。聚合是整體與個體之間的關系。如汽車類與引摯類,輪胎類之間的關系就是整體與個體的關系。
    與關聯關系一樣,聚合關系也是通過實例變量來實現的。

    ***關聯關系所涉及的兩個類是處于同一層次上的,而在聚合關系中,兩個類處在不平等的層次上的,一個代表整體,一個代表部分。(關聯與聚合僅僅從語法上是區分不開的,需要察所涉及的類之間的邏輯關系。)

    H:組成關系(Composition):是關聯關系的一種,是比聚合關系強的關系。它要求普通的聚合關系中代表的對象負責代表部分的對象的生命周期,合成關系是不能共享的。
    代表整體的對象需要負責保持對象的存活,在一些情況下負責將代表部分的對象湮滅掉。代表整體的對象可以將代表部分的對象傳遞給另一個對象,由后者負責此對象的生命周期。換言之,

    *******代表部分的對象在每一個時刻只能與一個對象發生合成關系,由后者排它的負責其生命周期。


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


    網站導航:
     
    主站蜘蛛池模板: 久久精品国产亚洲AV大全| 日韩精品亚洲aⅴ在线影院| 国产精品免费小视频| 免费中文字幕在线观看| 亚洲综合无码AV一区二区| 久久精品国产99精品国产亚洲性色| 亚洲av永久无码精品古装片| 亚洲国产成人久久| 豆国产96在线|亚洲| 国产人成网在线播放VA免费| 暖暖在线视频免费视频| 免费精品人在线二线三线区别| 国产免费牲交视频| 亚洲av永久无码精品古装片| 亚洲高清视频在线| jizz免费观看视频| 99国产精品免费观看视频| 在线观看免费大黄网站| 狠狠色婷婷狠狠狠亚洲综合| 亚洲韩国在线一卡二卡| 看一级毛片免费观看视频| 色www永久免费网站| 在线观看特色大片免费视频| 亚洲裸男gv网站| 亚洲精品在线播放| 免费人成大片在线观看播放| 99久久国产免费中文无字幕| 四虎影库久免费视频| 亚洲午夜免费视频| 国产成人亚洲综合无| 99视频免费观看| | 亚洲AV无码AV日韩AV网站| 波霸在线精品视频免费观看| 在线观看免费人成视频色9| 国产亚洲日韩在线三区| 亚洲精品一二三区| 久久青青草原国产精品免费| 日本免费电影一区| 自怕偷自怕亚洲精品| 成人a毛片视频免费看|