標籤: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):
一個軟體實體應當儘可能少的與其他實體發生相互作用。 (不要與陌生人說話!)