最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

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

分享到微博請遵守國家法律
周宁县| 江油市| 靖安县| 孝昌县| 南雄市| 临邑县| 土默特左旗| 樟树市| 庄浪县| 新龙县| 兴山县| 阜平县| 旌德县| 西乌| 亚东县| 麻城市| 乡城县| 铜山县| 咸阳市| 许昌市| 辰溪县| 民丰县| 寿宁县| 留坝县| 瓮安县| 旅游| 通化市| 云霄县| 云梦县| 鹤山市| 汨罗市| 台北县| 体育| 台南市| 武清区| 望都县| 小金县| 海南省| 义马市| 保亭| 于都县|