張峰

【摘要】“模式”二字最早源于建筑行業,隨著社會的飛速發展,模式的運用范圍也逐漸深入到各個領域。如今,模式已經成為了軟件領域內的關鍵詞,其在軟件領域的影響遠遠超過了在建筑行業的影響。軟件模式是軟件行業的一個新興名詞,其對軟件開發產生了重要的影響。在信息技術飛速發展的當今社會,加深對軟件模式的了解是十分必要的。本文以軟件模式為主要研究對象,主要從軟件的幾個模式來開展探討。
【關鍵詞】軟件模式;軟件領域;軟件開發
一、軟件模式的作用
所謂“模式”是指遵從某種規律反復出現的思維方式,而軟件模式便是將這一概念應用到軟件開發領域,以此來作為軟件開發的指導思路。軟件模式的核心思想在于對系統的模式進行再次運用。
在信息技術飛速發展的當今社會,軟件行業對于軟件模式的運用也在逐漸深入。實踐證明,軟件模式的應用對軟件開發有著很大的促進作用,這種作用主要表現為兩個方面:1.軟件模式是軟件工程師在設計、管理和組織軟件等實踐中經驗的提煉,是重復使用軟件設計方法的有力工具。軟件模式就好比拳擊中的組合拳,它為軟件工程師提供了大量軟件開發的思維方法,如通過運用軟件模式能使得復雜的系統變得簡潔。2.軟件模式不僅為人們在設計軟件過程中提供了一套簡潔的設計、組織和管理軟件方面的詞匯,它還為人們提供了一個描述抽象事物的規范標準。信息傳達準確、及時與否與軟件項目的成功有著緊密的聯系,由此可見,在軟件開發中交流是十分重要的,而軟件模式的這種規范標準促進了軟件開發過程中的交流,從而促進軟件項目的成功。
二、軟件模式分類
“模式”是在八十年代時期被Kent Beck等人引用到軟件開發領域中,目前,軟件中已經有很多種類的模式,如設計模式、架構模式等。下面我就針對軟件開發中的這些模式進行分析。
1.設計模式
設計模式描述普遍存在在相互通訊的組件中重復出現的結構中,設計模式是軟件模式中最典型的一種模式設計模式能夠使人們更加簡單、方便地復用成功的設計和體系結構。
一般情況下,設計模式主要是指1995年GOF提出的23種模式,他首次將設計模式提升到理論的高度。直至發展到今日,在可復用面向對象軟件的發展進程中,雖然有很多新的設計模式在不斷地出現,但是GOF提出的23種模式的理論依舊處于無法超越的地位。按大范圍的模式種類,可將23種設計模式的分為以下幾種:①創建型設計模式,如工廠方法模式(Factory Method)、建造模式(Builder)、原型模式(Prototype)等,這些模式在汽車制造業、快餐業和行政機構中都得到了充分的運用;②結構型設計模式,如裝飾模式(Decorator)、橋梁模式(Bridge)等,這些模式在工具、零售業和銀行業中都可以找到;③行為型模式,如模板方法模式(Template Method)、命令模式(Command)、訪問者模式(Visitor)等,這些模式在運用到了餐館訂餐、音樂和自動售貨機中。
近年來,設計模式受到了軟件行業的青睞,其特征在于將模式合并分解再創造出新的模式,這樣的變化能使得軟件開發的國戰。
2.架構模式
架構模式是一個較為空泛的概念,本文所講述的“架構模式”主要是指軟件實現的框架,其描述的是軟件開發過程中的總體綱要和基本架構,在軟件程序開發過程中,架構模式就是指模塊之間或子系統之間的職責關系,并給出將它們自制在一起的法制,稱為系統模式。架構一般強調設計復用,如MVP、總線架構、元數據模式等整體或局部架構。
架構模式常常被分為以下幾種:①模塊結構型(From Mud to Structure)。這種架構模式能幫助架構師合理地劃分系統,避免系統對象的混雜;②分散系統型(Distributed? Systems)。這種模式主要是為分散式系統提供完整的結構設計,在軟件開發中創設完整地構架;③人機互動型(Interactive? Systems)。這種架構模式支持包含有人機互動界面的架構設計,如MVC模式;④Adaptable? Systems型。這種架構模式支持軟件系統適應各種變化,如技術和軟件功能需求的變化。
3.代碼模式
代碼模式是軟件模式中最低層的模式,其和代碼或軟件開發語言有著緊密的聯系,是實現某種具體功能的最佳方式。例如JAVA要想實現飄帶文字的功能便可以利用代碼模式,較為著名的代碼模式案例有雙檢鎖模式(Double-Check Locking)等
參考文獻:
[1]彭鑫,趙文耘,夏寬理,沈鋮;基于Java的軟件再工程支持工具研究[J];計算機工程與應用;2003年18期
[2]張堃;黃莊莊;從C/S遺留系統升級到Web環境的軟件再工程[A];第九屆全國青年通信學術會議論文集[C];2004年06期
[3]王存思;軟件模式理論的研究及其在開發TroBus中的應用[D];福州大學;2002年
[4]武傳宇;基于PC+DSP模式的開放式機器人控制系統及其應用研究[D];浙江大學;2002年05期
[5]郭艷玲,趙萬生,董本志,喬世坤,徐達麗;數控發展的趨勢──開放式體系結構數控系統[J];東北林業大學學報;2000年05期