第二章 【物件導向設計原則】

來源:互聯網
上載者:User

標籤:style   color   使用   strong   width   os   

(一)如何衡量軟體設計的品質

        內聚度:

表示一個應用程式的單個單元所負責的任務數量和多樣性。內聚與單個類或者單個方法單元相關。(好的軟體設計應該做到高內聚。)

耦合度

耦合度表示類之間關係的緊密程度。低耦合是指盡量使用抽象耦合,少用具體耦合。



設計原則名稱 設計原則簡介 重要性
單一職責原則 的職責要單一,不能將太多的職責放在一個類中。 ★★★★☆
開閉原則 軟體實體對擴充是開放的,但對修改是關閉的,即在不修改一個軟體實體的基礎上去擴充其功能。  ★★★★★
曆史替換原則 在軟體系統中,一個可以接受基類對象的地方必然可以接受一個子類對象。  ★★★★☆ 
依賴倒轉原則 要針對抽象層編程,而不要針對具體類編程。  ★★★★★ 
介面隔離原則  用多個專門的介面來取代一個統一的介面。  ★★☆☆☆
組合/彙總複用原則 在系統中應該盡量多使用組合和彙總關聯關係,盡量少使用甚至不使用繼承關係。  ★★★★☆ 
迪米特法則 一個軟體實體對其他實體的引用越少越好,或者說如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用,而是通過引入一個第三者發生間接互動。  ★★★☆☆ 



一)單一職責(Single Responsibility Principle,SRP):

一個類而言,應該僅有一個引起它變化的原因,永遠不要讓一個類存在多個改變的理由。一個類只應該做和一個任務相關的業務,不應該把過多的業務放在一個類中完成。


二)開閉原則(Open-Close Principle,簡稱OCP):

是指一個軟體實體(類、模組、方法等)應該對擴充開放,對修改關閉。開閉原則是設計原則的核心原則。


三)裡氏替換原則(The Liskov Substitution Principle,LSP):

子類應該能夠完全替換任何父類能夠出現的地方,並且經過替換後,不會讓調用父類的客戶程式從行為上有任何改變。


四)依賴倒轉原則 ((Dependency Inversion Principle,簡稱DIP)):

高層模組不應該依賴於低層模組,二者都應該依賴於抽象;

抽象不應該依賴於細節,細節應該依賴於抽象。 

也就是面向抽象編程,不要面向具體編程


五)組合/彙總複用原則(Composite/Aggregation Reuse Principle,CARP):

是指要盡量使用組合/彙總實現代碼複用,少用繼承來達到複用目的。


六)介面隔離原則 (Interface Segregation Principle,簡稱ISP):

是指客戶不應該依賴它們用不到的方法,只給每個客戶它所需要的介面。換句話說,就是不能強迫使用者去依賴那些他們不使用的介面。也就是使用專門的介面,比用一個統一的介面好


七)迪米特法則 (Law of Demeter,簡稱LOD):

一個軟體實體應當儘可能少的與其他實體發生相互作用。 (不要與陌生人說話!)


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.