qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

          Java中類與類之間的關(guān)系

          Java中類與類之間的關(guān)系存在以下關(guān)系:

            1、泛化(Generalization)

            很簡(jiǎn)單,就是我們常說的繼承。是說子類獲得父類的功能的同時(shí),還可以擴(kuò)展自己的功能。

            如圖:

            Java代碼中表現(xiàn)為:extends和implements

            2、依賴(Dependency)

            兩個(gè)相對(duì)獨(dú)立的咚咚(A和B),當(dāng)A負(fù)責(zé)構(gòu)造B時(shí),A與B形成依賴關(guān)系,即A使用B。

            如圖:

            Java代碼中的表現(xiàn)為局部變量,方法的參數(shù),以及對(duì)靜態(tài)方法的調(diào)用

            3、關(guān)聯(lián)(Association)

            兩個(gè)相對(duì)獨(dú)立的咚咚(A和B),當(dāng)A對(duì)象持有B對(duì)象的時(shí)候,形成關(guān)聯(lián)關(guān)系。

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

            聚合:指的是整體與部分的關(guān)系,如圖:

            組合:表示類之間整體和部分的關(guān)系,但是組合關(guān)系中部分和整體具有統(tǒng)一的生存期,即整體對(duì)象不存在,部分對(duì)象也將不存在,如圖:

            Java代碼中,表現(xiàn)為成員變量。

            4、總結(jié)

            在Java中,應(yīng)該盡量?jī)?yōu)先使用組合,而不是繼承,因?yàn)槔^承會(huì)使得類關(guān)系過于復(fù)雜化,破壞了封裝性,使用組合一樣可以獲得已有類的功能,而且會(huì)使新類更加穩(wěn)固。

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

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


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2012年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 边坝县| 武陟县| 抚宁县| 黑河市| 女性| 富裕县| 卢湾区| 哈巴河县| 新绛县| 新昌县| 海城市| 乌鲁木齐县| 大余县| 林甸县| 本溪市| 台南县| 阳山县| 梅州市| 武平县| 张北县| 永兴县| 安平县| 汤原县| 荔浦县| 肇源县| 辉县市| 永春县| 犍为县| 江华| 新平| 太仓市| 平乐县| 同仁县| 抚宁县| 黑河市| 南靖县| 泰州市| 枞阳县| 江阴市| 兴安盟| 和龙市|