設(shè)計(jì)模式的原則及實(shí)現(xiàn)代碼的復(fù)用
推薦 + 挑錯(cuò) + 收藏(0) + 用戶評(píng)論(0)
設(shè)計(jì)模式之六大原則
開閉原則(Open Close Principle)
1988年,勃蘭特·梅耶(Bertrand Meyer)在他的著作《面向?qū)ο筌浖?gòu)造(Object Oriented Software Construction)》中提出了開閉原則,它的原文是這樣:“Software entities should be open for extension,but closed for modification”。
意思:軟件模塊應(yīng)該對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉。
舉例:在程序需要進(jìn)行新增功能的時(shí)候,不能去修改原有的代碼,而是新增代碼,實(shí)現(xiàn)一個(gè)熱插拔的效果(熱插拔:靈活的去除或添加功能,不影響到原有的功能)。
目的:為了使程序的擴(kuò)展性好,易于維護(hù)和升級(jí)。
里氏代換原則(Liskov Substitution Principle)
意思:里氏代換原則是繼承復(fù)用的基石,只有當(dāng)衍生類可以替換掉基類,軟件單位的功能不受到影響時(shí),基類才能真正被復(fù)用,而衍生類也能夠在基類的基礎(chǔ)上增加新的行為。
舉例:球類,原本是一種體育用品,它的衍生類有籃球、足球、排球、羽毛球等等,如果衍生類替換了基類的原本方法,如把體育用品改成了食用品(那么軟件單位的功能受到影響),就不符合里氏代換原則。
目的:對(duì)實(shí)現(xiàn)抽象化的具體步驟的規(guī)范。
依賴倒轉(zhuǎn)原則(Dependence Inversion Principle)
意思:針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程。
舉例:以計(jì)算機(jī)系統(tǒng)為例,無論主板、CPU、內(nèi)存、硬件都是在針對(duì)接口設(shè)計(jì)的,如果針對(duì)實(shí)現(xiàn)來設(shè)計(jì),內(nèi)存就要對(duì)應(yīng)到針對(duì)某個(gè)品牌的主板,那么會(huì)出現(xiàn)換內(nèi)存需要把主板也換掉的尷尬。
目的:降低模塊間的耦合。
接口隔離原則(Interface Segregation Principle)
使用多個(gè)隔離的接口,比使用單個(gè)接口要好。
舉例:比如:登錄,注冊(cè)時(shí)屬于用戶模塊的兩個(gè)接口,比寫成一個(gè)接口好。
目的:提高程序設(shè)計(jì)靈活性。
迪米特法則(最少知道原則)(Demeter Principle)
1987年秋天由美國(guó)Northeastern University的Ian Holland提出,被UML的創(chuàng)始者之一[Booch]等普及。后來,因?yàn)樵诮?jīng)典著作《 The Pragmatic Programmer》而廣為人知。
意思:一個(gè)實(shí)體應(yīng)當(dāng)盡量少的與其他實(shí)體之間發(fā)生相互作用,使得系統(tǒng)功能模塊相對(duì)獨(dú)立。
舉例:一個(gè)類公開的public屬性或方法越多,修改時(shí)涉及的面也就越大,變更引起的風(fēng)險(xiǎn)擴(kuò)散也就越大。
目的:降低類之間的耦合,減少對(duì)其他類的依賴。
單一職責(zé)原則( Single responsibility principle )
該原則由羅伯特·C·馬丁(Robert C. Martin)于《敏捷軟件開發(fā):原則、模式和實(shí)踐》一書中給出的。馬丁表示此原則是基于湯姆·狄馬克(Tom DeMarco)和Meilir Page-Jones的著作中的內(nèi)聚性原則發(fā)展出的。
意思:一個(gè)類只負(fù)責(zé)一個(gè)功能領(lǐng)域中的相應(yīng)職責(zé),或者可以定義為:就一個(gè)類而言,應(yīng)該只有一個(gè)引起它變化的原因。
舉例:該原則意思簡(jiǎn)單到不需要舉例!
目的:類的復(fù)雜性降低,可讀性提高,可維護(hù)性提高。
非常好我支持^.^
(0) 0%
不好我反對(duì)
(0) 0%
下載地址
設(shè)計(jì)模式的原則及實(shí)現(xiàn)代碼的復(fù)用下載
相關(guān)電子資料下載
- SigFit—光機(jī)熱耦合分析工具 43
- BJT管構(gòu)成什么樣的電路可以帶重載?如何獲得更高倍數(shù)的BJT管? 228
- 電機(jī)振動(dòng)的十大原因 369
- 電容元件符號(hào)與工作原理:電子電路中的電荷儲(chǔ)存利器 60
- 淺談耦合電感 106
- DC-DC非耦合電感交錯(cuò)并聯(lián)概述 142
- 探討變壓器的作用以及其在改變相位方面的應(yīng)用 129
- 電子電路中的安全衛(wèi)士:認(rèn)識(shí)光耦合器的工作原理 98
- 交越失真產(chǎn)生的原因是什么?怎么克服交越失真? 111
- 光耦合器:6N136和6N137之間的差異 131