《敏捷軟件開發-原則、方法與實踐》-Robert C. Martin

shupi

 

  • Review of Agile Software Development: Principles, Patterns, and Practices
  • 本書主要包含4部分內容,這些內容對於今天的軟件工程師都非常的重要,它們是:
    ●Agile方法:主要講述瞭如何去使用Agile方法,其中有很大一部分內容是告訴你爲什麼要這樣做。
    ●面向對象設計原則:本書包含了11個面向對象設計原則,涵蓋了包的設計和類的設計。
    ●設計模式:本書中講述了23個設計模式,並都有具體的實例。講解的重點在如何在實際的應用中去使用模式,如何根據當前問題的上下文以及約束力去選擇最適合的模式,以及何時避免使用模式。
    ●UML:本書不是關於UML的,但是爲了讓讀者更好的理解書中的內容,作者使用了一些UML圖來展示設計思路。同時,本書中也對如何有效的使用UML做了深入的闡述。本書中有兩個附錄專門對UML進行了簡介。
  • --個人覺得面向對象設計原則是本書的精華。
  • 摘抄自《敏捷軟件開發-原則、方法與實踐》-Robert C. Martin
    (1)SRP 單一職責原則
    就一個類而言,應該僅有一個引起它變化的原因。
    職責即爲"變化的原因".
    (2)OCP 開放封閉原則
    軟件實體(類、模塊、函數等)應該是可以擴展的,但是不可修改。
    對於擴展是開放的,對於更改是封閉的.
    關鍵是抽象.將一個功能的通用部分和實現細節部分清晰的分離開來.
    開發人員應該僅僅對程序中呈現出頻繁變化的那些部分作出抽象.拒絕不成熟的抽象和抽象本身一樣重要.
    (3)LSP Liskov替換原則
    子類型必須能替換掉他們的基本類型
    (4)DIP 依賴倒置原則
    抽象不應該依賴於細節。細節應該依賴於抽象。
    Hollywood原則: "Don't call us, we'll call you".程序中所有的依賴關係都應該終止於抽象類和接口。針對接口而非實現編程。
    任何變量都不應該持有一個指向具體類的指針或引用。
    任何類都不應該從具體類派生。
    任何方法都不應該覆寫他的任何基類中的已經實現了的方法。
    (5)ISP 接口隔離原則
    不應該強迫客戶依賴於他們不用的方法。接口屬於客戶,不屬於他所在的類層次結構。
    多個面向特定用戶的接口勝於一個通用接口。
    (6)REP 重用發佈等價原則
    重用的粒度就是發佈的粒度.
    (7)CCP 共同重用原則
    一個包中的所有類應該是共同重用的。如果重用了包中的一個類,那麼就要重用包中的所有類。
    相互之間沒有緊密聯繫的類不應該在同一個包中。
    (8)CRP 共同封閉原則
    包中的所有類對於同一類性質的變化應該是共同封閉的。一個變化若對一個包影響,則將對包中的所有類產生影響,而對其他的包不造成任何影響.
    (9)ADP 無依賴原則
    在包的依賴關係中不允許存在環.
    細節不應該被依賴.
    (10)SDP 穩定依賴原則
    朝着穩定的方向進行依賴.
    應該把封裝系統高層設計的軟件(比如抽象類)放進穩定的包中,不穩定的包中應該只包含那些很可能會改變的軟件(比如具體類)。
    (11)SAP 穩定抽象原則
    包的抽象程度應該和其他穩定程度一致.
    一個穩定的包應該也是抽象的,一個不穩定的包應該是抽象的.
    (12)DAP(Default Abstraction Principle)缺省抽象原則
    在接口和實現接口的類之間引入一個抽象類,這個類實現了接口的大部分操作.
    (13)IDP(Interface Design Principle)接口設計原則
    規劃一個接口而不是實現一個接口。
    (14)BBP(Black Box Principle)黑盒原則
    多用類的聚合,少用類的繼承。
    (15)DCSP(Don't Concrete Supperclass Principle)不要構造具體的超類原則
    避免維護具體的超類。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章