成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

結(jié)合設(shè)計(jì)模式說說類的設(shè)計(jì)

開發(fā) 架構(gòu)
學(xué)習(xí)設(shè)計(jì)模式有一段時(shí)間了,現(xiàn)想小結(jié)一下,說說我對(duì)類的設(shè)計(jì)的一些常用法則的理解。詳細(xì)請(qǐng)看下文

學(xué)習(xí)設(shè)計(jì)模式有一段時(shí)間了,現(xiàn)想小結(jié)一下,說說我對(duì)類的設(shè)計(jì)的一些常用法則的理解。

 

一,SOLID法則:

Single responsibility principle

每個(gè)類僅僅承擔(dān)一個(gè)具體的任務(wù)。特別是那些明顯不屬于類的功能,應(yīng)該封裝到新的類里去。界面和邏輯的分離就是個(gè)很好的例子。

Open/Closed principle

軟件開發(fā)必須考慮可擴(kuò)展性,但是擴(kuò)展不能更改現(xiàn)有的代碼,否則可能更引起大范圍的連鎖反應(yīng)。設(shè)計(jì)類的時(shí)候,可以通過抽象來隔離變化,并通過繼承來實(shí)現(xiàn)變化。

Liskov substitution principle

如果派生類B公有繼承了基類A,即類B是類A的子類型,那么子類型就能夠替換掉父類型,而且這種替換關(guān)系不可逆。正是這種替換關(guān)系使得父類可以被復(fù)用。注意并不是所有的"is a"關(guān)系都適用里氏代換,比方說:足球和美式足球都叫足球,但是編程的時(shí)候,美式足球不能認(rèn)足球?yàn)楦割悾驗(yàn)樽闱蛑荒苡媚_,而美式足球可以用手。

Interface segregation principle

接口類設(shè)計(jì)要盡量簡(jiǎn)練,只需要包含必要的功能即可。比方說:可以簡(jiǎn)練到只包含一個(gè)純虛函數(shù)。

Dependency inversion principle

針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程。這樣使用接口的類就和接口的具體實(shí)現(xiàn)分開了,雙方都可以靈活自如,只要遵守接口約定即可。實(shí)踐中純虛函數(shù)就是接口,針對(duì)接口編程就是重寫純虛函數(shù)。

 

二,IC法則(為方便記憶我個(gè)人取的名字):

Encapsulation/Information hiding

類的內(nèi)部數(shù)據(jù)對(duì)外不可見,而只能通過其自身行為改變。封裝不僅僅是數(shù)據(jù)隱藏,也可以是變化點(diǎn)的隱藏。很多設(shè)計(jì)模式都使用封裝來創(chuàng)建接口類,在接口類一側(cè)的修改不會(huì)影響到另一側(cè),從而松開這兩側(cè)的耦合,增強(qiáng)了軟件的復(fù)用。如果被隱藏的具體被調(diào)用類報(bào)錯(cuò),只能修改被調(diào)用類,而不能在調(diào)用類中繞開錯(cuò)誤。

Composition

優(yōu)先使用組合而不是繼承。繼承是在編譯時(shí)刻靜態(tài)定義的,而組合可以在運(yùn)行時(shí)刻動(dòng)態(tài)選擇。繼承對(duì)子類揭示了其父類的實(shí)現(xiàn)細(xì)節(jié),這就破壞了封裝,而組合要求對(duì)象遵守共同的接口約定,并不破壞封裝。繼承中的子類和父類有緊密的依賴關(guān)系,而組合由于多了一層接口并不相互依賴。過多的繼承可能導(dǎo)致類爆炸,不利于后期的維護(hù),而組合可以防止類爆炸,減少繼承層次。

原文鏈接:http://www.cnblogs.com/xfu123/archive/2012/06/28/2558377.html

責(zé)任編輯:林師授 來源: 博客園
相關(guān)推薦

2012-06-29 09:56:57

設(shè)計(jì)模式

2021-10-29 09:40:21

設(shè)計(jì)模式軟件

2010-07-05 16:23:39

UML類圖

2020-12-17 09:38:16

設(shè)計(jì)模式參數(shù)

2021-02-01 10:01:58

設(shè)計(jì)模式 Java單例模式

2023-11-02 21:11:11

JavaScript設(shè)計(jì)模式

2013-09-22 09:30:44

卡片式設(shè)計(jì)響應(yīng)式

2021-04-19 21:25:48

設(shè)計(jì)模式到元

2012-10-29 11:16:13

2024-09-14 08:24:44

設(shè)計(jì)模式抽象工廠模式JDK

2017-07-07 10:55:14

數(shù)據(jù)庫(kù)MongoDB設(shè)計(jì)模式

2020-12-22 09:32:36

JavaScripMixin mixins

2022-01-12 13:33:25

工廠模式設(shè)計(jì)

2023-05-04 08:47:31

命令模式抽象接口

2020-08-21 07:23:50

工廠模式設(shè)計(jì)

2020-11-04 08:54:54

狀態(tài)模式

2023-04-10 09:20:13

設(shè)計(jì)模式訪客模式

2020-11-03 13:05:18

命令模式

2013-11-26 16:09:34

Android設(shè)計(jì)模式

2020-10-23 09:40:26

設(shè)計(jì)模式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日日天天 | h片在线观看免费 | 日日夜夜草 | 一区二区三区四区免费在线观看 | 国产日韩精品在线 | 黄色毛片一级 | 中文字幕一区二区三区四区五区 | 日韩一区不卡 | 黄色亚洲| 欧美日韩成人在线观看 | 香蕉一区二区 | 精品久久久久一区二区国产 | 四虎在线视频 | 成人国产精品视频 | 天堂中文字幕av | av毛片| 激情六月天 | 在线观看国产www | 性欧美精品一区二区三区在线播放 | 色欧美综合 | 精品国产乱码久久久久久1区2区 | 国产精品激情在线 | www国产精| 国产激情精品 | 久久久精品一区二区三区 | 国产成人在线播放 | 日本黄色免费片 | 午夜网| 亚洲一区免费在线 | 亚洲视频免费观看 | 综合久久久 | 黄色片在线 | 亚洲欧美视频一区二区 | 在线色网站 | 欧美爱爱视频网站 | 在线观看h视频 | 日韩一区av| 福利网站在线观看 | 一级大片网站 | 国产精品免费一区二区 | 中文av字幕 |