語言 :
SWEWE 會員 :登錄 |註冊
搜索
百科社區 |百科問答 |提交問題 |詞彙知識 |上傳知識
上一頁 1 下一頁 選擇頁數

設計模式

設計模式(Design pattern)是一套被反複使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使代碼編制真正工程化,設計模式是軟件工程的基石,如同大廈的一塊塊磚石一樣。圖書信息

作者:[美] Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides   出版社: 機械工業出版社副標題:可複用面向對象軟件的基​​礎譯者: 李英軍、 馬曉星、 蔡敏、 劉建中出版年:2000-9頁數:254  定價:35.00元裝幀:平裝叢書:計算機科學叢書ISBN:9787111075752

四人幫

GoF(“四人幫”,又稱Gang of Four,即Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides四人)的《設計模式》,原名《Design Patterns: Elements of Reusable Object-Oriented Software》(1995年出版,出版社:Addison Wesly Longman.Inc),第一次將設計模式提升到理論高度,並將之規範化。該書提出了23種基本設計模式。時至今日,在可複用面向對象軟件的發展過程中,新的設計模式仍然不斷出現。

設計框架

可複用面向對象軟件系統現在一般劃分為兩大類:應用程序工具箱和框架(Framework),我們平時開發的具體軟件都是應用程序,Java的API屬於工具箱;而框架是構成一類特定軟件可複用設計的一組相互協作的類,EJB(E​​nterpriseJavaBeans)是Java應用於企業計算的框架。

框架通常定義了應用體系的整體結構類和對象的關係等等設計參數,以便於具體應用實現者能集中精力於應用本身的特定細節。框架主要記錄軟件應用中共同的設計決策,框架強調設計復用,因此框架設計中必然要使用設計模式。

另外,設計模式有助於對框架結構的理解,成熟的框架通常使用了多種設計模式,如果你熟悉這些設計模式,毫無疑問,你將迅速掌握框架的結​​構,我們一般開發者如果突然接觸EJBJ2EE等框架,會覺得特別難學,難掌握,那麼轉而先掌握設計模式,無疑是給了你剖析EJB或J2EE系統的一把利器。

設計原則

綜述

為什麼要提倡"Design Pattern"呢?根本原因是為了代碼復用,增加可維護性。那麼怎麼才能實現代碼復用呢?面向對像有幾個原則:開閉原則(Open Closed Principle,OCP)、里氏代換原則(Liskov Substitution Principle,LSP)、依賴倒轉原則(Dependency Inversion Principle,DIP)、接口隔離原則(Interface Segregation Principle, ISP)、合成/聚合復用原則(Composite/Aggregate Reuse Principle,CARP)、最小知識原則(Principle of Least Knowledge,PLK,也叫迪米特法則)。開閉原則具有理想主義的​​色彩,它是面向對象設計的終極目標。其他幾條,則可以看做是開閉原則的實現方法。

設計模式就是實現了這些原則,從而達到了代碼復用、增加可維護性的目的。

開閉原則

此原則是由"Bertrand Meyer"提出的。原文是:"Software entities should be open for extension,but closed for modification"。就是說模塊應對擴展開放,而對修改關閉。模塊應盡量在不修改原(是"原",指原來的代碼)代碼的情況下進行擴展。那麼怎麼擴展呢?我們看工廠模式"factory pattern":假設中關村有一個賣盜版盤和毛片的小子,我們給他設計一"光盤銷售管理軟件"。我們應該先設計一"光盤"接口。如圖:

[pre]______________

|<>|

| 光盤 |

|_____________|

| 賣() |

| |

|_____________|[/pre]

而盜版盤和毛片是其子類。小子通過"DiscFactory"來管理這些光盤。代碼為:

public class DiscFactory{

public static 光盤 getDisc(String name){

//return (光盤)Class.forName(name).getInstance();

return (光盤)Class.forName(name).newInstance();

}

}

有人要買盜版盤,怎麼實現呢?


上一頁 1 下一頁 選擇頁數
用戶 評論
還沒有評論
我要評論 [遊客 (3.215.*.*) | 登錄 ]

語言 :
| 校驗代碼 :


搜索

版权申明 | 隐私权政策 | 版權 @2018 世界百科知識