五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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)系的評論 (共 條)

分享到微博請遵守國家法律
南汇区| 谢通门县| 乌鲁木齐市| 金川县| 赫章县| 呼伦贝尔市| 永春县| 枣庄市| 宜兴市| 辛集市| 上林县| 龙泉市| 南木林县| 泸州市| 台北市| 宜兰市| 新野县| 炉霍县| 富宁县| 内江市| 邹城市| 苍梧县| 万安县| 高清| 桦南县| 淮阳县| 马公市| 故城县| 观塘区| 阳高县| 瓦房店市| 囊谦县| 太保市| 浦城县| 隆德县| 孟村| 大冶市| 容城县| 石狮市| 松溪县| 宣城市|