可重用的軟體開發經驗-設計模式(基本概念)

來源:互聯網
上載者:User

  現如今,設計模式已經較前兩年失去了一些關注度和熱度。人們已經把目光投向那些革命性的高科技產品和技術,諸如:iPhone,iPad,雲端運算,雲平台,HTML5等等。但是我認為,不管時間如何變化,軟體設計思想永遠隨著時間推移而被人們繼承和發揚光大。

  生活中的很多經驗,都是曆經風雨滄桑,被人們所接受認知併流傳至今。比如:“磨刀不誤砍柴工”,“織網捕魚”,“是騾子是馬,拉出去遛遛”等。不管咋樣,本質思想是不變的。設計模式也是這樣,本質就是那些成功軟體設計師們的寶貴經驗,是經過大量實踐,總結歸納來的。既然生活經驗可以積累繼承,那設計模式也可以在程式設計和開發方面供我們使用。

  那什麼是設計模式?我們不需要那些抽象概念,只要記住是一種解決問題的思路,是複雜問題的簡單解決方案就可以了。這隻是宏觀上對他進行說明。具體說就是:設計模式是對於在某種環境下軟體設計問題上的可重用的解決方案,目的就是要充分利用已有的軟體開發經驗,解決不同問題。在軟體開發設計的時候我們也是不斷思考,實踐,歸納總結得到一種行之有效方法,遇到具體問題,拿過來套用把問題解決掉。

  模式不是發明與創造,而是來自我們日常設計開發中的發現與總結,是一種實踐經驗的積累,最終促使我們走向成熟。

  設計模式種類很多,包括分布式編程模式,使用者介面模式,資料模型模式三大類。目前比較流行的是物件導向設計模式GoF(Gang of Four的縮寫)模式,翻譯出來比較邪惡“四人幫”,另一個是GRASP(General Responsibility Assignment Software Pattern)稱為通用職責分配軟體模式。

  GRASP與其說他是模式,不如說他是原則和設計要求。他是幹啥的?引用一段文檔上的話很貼切,“GRASP的核心是自己幹自己的事,自己只幹自己的事,也就是職責分配和實現高內聚。用來解決物件導向設計的一些問題”。

  在OOD中GRASP包括九大設計原則:

  1. 低耦合(Low Coupling)
  2. 高內聚(High Cohesion)
  3. 資訊專家(Information Expert)
  4. 建立者(Creator)
  5. 控制器(Controller)
  6. 多態(Polymorphism)
  7. 純虛構(Pure Fabrication)
  8. 間接(Indirection)
  9. 受保護變化(Protected Variation)

  GoF模式,眾所周知包括23種設計模式。

  •  根據目的準則分類
    1. 建立型(Creational)
    2. 結構型(Structural)
    3. 行為型(Behavioral)
  • 根據範圍準則分類
    1. 類模式
    2. 對象模式

  GRASP原則著重考慮設計類的原則及如何分配類的功能,而GoF模式則著重考慮設計的實現、類與類的互動及軟體品質。所以GoF模式是符合GRASP原則的物件導向設計模式。

相關文章

聯繫我們

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