日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
結(jié)合設(shè)計模式說說類的設(shè)計

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

市北網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。成都創(chuàng)新互聯(lián)于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)。

一,SOLID法則:

Single responsibility principle

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

Open/Closed principle

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

Liskov substitution principle

如果派生類B公有繼承了基類A,即類B是類A的子類型,那么子類型就能夠替換掉父類型,而且這種替換關(guān)系不可逆。正是這種替換關(guān)系使得父類可以被復(fù)用。注意并不是所有的"is a"關(guān)系都適用里氏代換,比方說:足球和美式足球都叫足球,但是編程的時候,美式足球不能認(rèn)足球為父類,因為足球只能用腳,而美式足球可以用手。

Interface segregation principle

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

Dependency inversion principle

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

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

Encapsulation/Information hiding

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

Composition

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


網(wǎng)站名稱:結(jié)合設(shè)計模式說說類的設(shè)計
網(wǎng)址分享:http://www.dlmjj.cn/article/cdepspg.html