qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          Java中類與類之間的關系

          Java中類與類之間的關系存在以下關系:

            1、泛化(Generalization)

            很簡單,就是我們常說的繼承。是說子類獲得父類的功能的同時,還可以擴展自己的功能。

            如圖:

            Java代碼中表現為:extends和implements

            2、依賴(Dependency)

            兩個相對獨立的咚咚(A和B),當A負責構造B時,A與B形成依賴關系,即A使用B。

            如圖:

            Java代碼中的表現為局部變量,方法的參數,以及對靜態方法的調用

            3、關聯(Association)

            兩個相對獨立的咚咚(A和B),當A對象持有B對象的時候,形成關聯關系。

            關于分為有兩種特殊的形式,聚合(Aggregation)和組合(Composition),聚合和組合只有概念上的區別,在Java中的代碼實現上沒有區別。

            聚合:指的是整體與部分的關系,如圖:

            組合:表示類之間整體和部分的關系,但是組合關系中部分和整體具有統一的生存期,即整體對象不存在,部分對象也將不存在,如圖:

            Java代碼中,表現為成員變量。

            4、總結

            在Java中,應該盡量優先使用組合,而不是繼承,因為繼承會使得類關系過于復雜化,破壞了封裝性,使用組合一樣可以獲得已有類的功能,而且會使新類更加穩固。

             實際上,從依賴 -----〉聚合--------〉組合,類與類之間的關系更加緊密,互相之間的影響越來越大,其實我們平常比較少去區分這些關系,而且事實上這東西的定 義不太好理解,所以肯定會導致認識上的偏差,所以我們使用這些東西的時候,盡量靠近大家都認同的做法,這樣容易讓別人理解。

          posted on 2012-04-25 13:52 順其自然EVO 閱讀(165) 評論(0)  編輯  收藏


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


          網站導航:
           
          <2012年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 三门峡市| 保山市| 宜兰县| 闵行区| 临安市| 镇宁| 铁力市| 杂多县| 泗洪县| 南岸区| 雷波县| 宾川县| 广灵县| 延吉市| 化州市| 永胜县| 金湖县| 阳泉市| 舟曲县| 弥勒县| 辉县市| 阜南县| 天津市| 克山县| 铁力市| 惠水县| 河曲县| 彰化县| 通山县| 民勤县| 石门县| 成安县| 漯河市| 香港| 阿图什市| 浦城县| 海原县| 静安区| 青浦区| 凤城市| 东阳市|