国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

java 核心技術(shù)-12版 卷Ⅰ- 4.1.4 類之間的關(guān)系

2023-02-16 20:09 作者:CC挑燈夜讀_谷  | 我要投稿

類之間最常見的關(guān)系有:

  • 依賴(uses-a)

  • 聚合(has-a)

  • 繼承(is-a)

????依賴(dependence),即 uses-a 關(guān)系,是一種最明顯的也最一般的關(guān)系。例如,Order 類使用了Account 類,因為Order對象需要訪問 Account 對象來查看信用狀態(tài)。但是 Item 類不依賴于 Account類,因為Item 對象不需要考慮客戶賬戶。因此,如果一個類的方法要使用或操作另一個類的對象,我們就說前一個類依賴于后一個類。

????應該盡可能減少相互依賴的類。這里的關(guān)鍵是,如果類A 不知道類B 的存在,它就不會關(guān)心B的任何變化(這意味著B的改變不會在A中引入bug)。用軟件工程的術(shù)語來說,就是要盡可能減少類之間的耦合(coupling)。

????聚合(aggregation)即has-a 關(guān)系,很容易理解,因為這種關(guān)系很具體。例如,一個Order 對象包含一些Item對象。包含關(guān)系意味著類A 的對象包含類B的對象。

????注釋:有點方法學家不喜歡聚合這個概念,而更喜歡使用更一般的“關(guān)聯(lián)”關(guān)系。從建模的角度看,這是可以理解的。但對于程序員來說,“has-a”關(guān)系更加形象。我喜歡使用聚合還有另一個原因:關(guān)聯(lián)的標準記法不是很清楚,請參見4-1:


4-1 表達類關(guān)系的UML記法

????繼承(inheritance),即 is-a 關(guān)系,表示一個更特殊的類與一個更一般的類之間的關(guān)系。例如,RushOrder 類繼承了Order 類。在特殊化的RushOrder 類中包含一些用于優(yōu)先處理的特殊方法,還提供了一個計算運費的不同方法;而其他的方法,如添加商品、生成賬單等都是從Order類繼承來的。一般而言,如果類D 擴展了類C,類D會繼承類C 的方法,另外還會有一些額外的功能(下一章將詳細討論這個重要的概念)。

????很多程序員采用UML(Unified Modeling Language,統(tǒng)一建模語言)繪制類圖,來描述類之間的關(guān)系。圖4-2 就是這樣一個例子。類用矩形表示,類之間的關(guān)系用帶有各種修飾的箭頭表示。表4-1給出了UML 中最常用的箭頭樣式。

4-2 類圖


java 核心技術(shù)-12版 卷Ⅰ- 4.1.4 類之間的關(guān)系的評論 (共 條)

分享到微博請遵守國家法律
河东区| 株洲市| 玉林市| 莱芜市| 望谟县| 新巴尔虎右旗| 花莲县| 秦皇岛市| 吉林市| 嵊泗县| 山东省| 黄山市| 威海市| 珠海市| 西充县| 峨眉山市| 石台县| 祥云县| 达尔| 临沂市| 西华县| 威远县| 隆昌县| 鲜城| 宜宾市| 贵阳市| 阳高县| 会宁县| 新密市| 太保市| 洛阳市| 抚顺市| 隆尧县| 达孜县| 云安县| 襄樊市| 奎屯市| 颍上县| 巍山| 武胜县| 绥江县|