您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>通訊/手機編程>

設(shè)計模式的原則及實現(xiàn)代碼的復(fù)用

大小:0.3 MB 人氣: 2017-09-26 需要積分:1

  設(shè)計模式之六大原則

  開閉原則(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)該對擴展開放,對修改關(guān)閉。

  舉例:在程序需要進行新增功能的時候,不能去修改原有的代碼,而是新增代碼,實現(xiàn)一個熱插拔的效果(熱插拔:靈活的去除或添加功能,不影響到原有的功能)。

  目的:為了使程序的擴展性好,易于維護和升級。

  里氏代換原則(Liskov Substitution Principle)

  意思:里氏代換原則是繼承復(fù)用的基石,只有當衍生類可以替換掉基類,軟件單位的功能不受到影響時,基類才能真正被復(fù)用,而衍生類也能夠在基類的基礎(chǔ)上增加新的行為。

  舉例:球類,原本是一種體育用品,它的衍生類有籃球、足球、排球、羽毛球等等,如果衍生類替換了基類的原本方法,如把體育用品改成了食用品(那么軟件單位的功能受到影響),就不符合里氏代換原則。

  目的:對實現(xiàn)抽象化的具體步驟的規(guī)范。

  依賴倒轉(zhuǎn)原則(Dependence Inversion Principle)

  意思:針對接口編程,而不是針對實現(xiàn)編程。

  舉例:以計算機系統(tǒng)為例,無論主板、CPU、內(nèi)存、硬件都是在針對接口設(shè)計的,如果針對實現(xiàn)來設(shè)計,內(nèi)存就要對應(yīng)到針對某個品牌的主板,那么會出現(xiàn)換內(nèi)存需要把主板也換掉的尷尬。

  目的:降低模塊間的耦合。

  接口隔離原則(Interface Segregation Principle)

  使用多個隔離的接口,比使用單個接口要好。

  舉例:比如:登錄,注冊時屬于用戶模塊的兩個接口,比寫成一個接口好。

  目的:提高程序設(shè)計靈活性。

  迪米特法則(最少知道原則)(Demeter Principle)

  1987年秋天由美國Northeastern University的Ian Holland提出,被UML的創(chuàng)始者之一[Booch]等普及。后來,因為在經(jīng)典著作《 The Pragmatic Programmer》而廣為人知。

  意思:一個實體應(yīng)當盡量少的與其他實體之間發(fā)生相互作用,使得系統(tǒng)功能模塊相對獨立。

  舉例:一個類公開的public屬性或方法越多,修改時涉及的面也就越大,變更引起的風(fēng)險擴散也就越大。

  目的:降低類之間的耦合,減少對其他類的依賴。

  單一職責(zé)原則( Single responsibility principle )

  該原則由羅伯特·C·馬?。≧obert C. Martin)于《敏捷軟件開發(fā):原則、模式和實踐》一書中給出的。馬丁表示此原則是基于湯姆·狄馬克(Tom DeMarco)和Meilir Page-Jones的著作中的內(nèi)聚性原則發(fā)展出的。

  意思:一個類只負責(zé)一個功能領(lǐng)域中的相應(yīng)職責(zé),或者可以定義為:就一個類而言,應(yīng)該只有一個引起它變化的原因。

  舉例:該原則意思簡單到不需要舉例!

  目的:類的復(fù)雜性降低,可讀性提高,可維護性提高。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?