軟體設計原則

來源:互聯網
上載者:User

前些天,在朋友那看到一本書《你必須知道的.NET》,得知本書是我們的部落格園裡面的一位高手寫的。我很迫切的接到了這本書,一個星期的時間我把它看完了,我完全沉浸在本書中,有時候看的忘了時間。甚至是連腳凍的發麻都不知道。對於精華的部分,我做了點筆記。有的我拿出來和大家分享。如有機會的話,可以把那本書賣下來。

    GOF 說道:好的設計,成就好的作品。但在軟體設計的過稱中,在原則的規範下,那我們的軟體會重構的更好。下面是個人總結的:

三大基本物件導向設計原則

---針對介面編程,而不是針對實現編程

---優先使用對象組合,而不是類繼承

---封裝變化點

幾條更具體的設計原則:

1、單一職責(SRP,Sign Responsible Principle)

      核心思想:一個類,最好只做一件事情,應該僅有一個引起它變化的原因(高高內聚、低耦合)

 

2、開放封閉原則(OCP,Open Closed Principle)

     核心思想:類別模組應該是課擴充的,但是不可修改(對擴充開放,對更改封閉)

l 對擴充開放,意味著有新的需求變化時,可以對現有代碼進行擴充,適應新要求。

l 對更改封閉,意味著類一旦完成就可以獨立完成其工作,而不需要對類變更。

 

3、Liskov替換原則(LSP)

     核心思想:子類必須能夠替換它們的基類。

 

4、依賴倒置原則(DIP,Dependency Inversion Principle)

     核心思想:依賴於抽象。

l 高層模組不應該依賴底層模組,二者都應該依賴於抽象。

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

 

5、介面隔離原則(ISP, Interface Segregation Principle)

    核心思想:使用多個小的專門的介面,而不要使用大的總介面。

l 介面應該是內聚的,應該避免出現“胖介面”。

l 一個類對另一個類的依賴應該建立在最小介面上,不要強迫依賴不用的方法,這是一種介面汙染。

 

6、合成"彙總複用原則(CARP, Composite/Aggregate Reuse Principle)

核心思想:在新對象中已有對象,使之成為就對象的成員,從而通過操作這些對象應該儘可能少的和其他軟體實體發生相互作用。

這裡面都是設計模式中常用的規則。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.