李瑞雪
摘 要
歷史的時針進入21世紀以來,我國迎來了信息技術快速發展時期,伴隨著信息技術的飛速發展,Internet 的發展與完善使我國獲取了世界范圍內的大量信息基礎設施。軟件設計過程中所運用的設計模式也得以初步顯現。設計模式(Design pattern)指的是一種運用范圍廣泛且基于分類編碼以及代碼設計的一種總結形式。在軟件設計中運用設計模式可有效地提高代碼的使用率,不僅確保了代碼的穩定性而且更加的易于被人們理解并接受。設計模式在當下的今天已經被廣泛的用于到各類軟件的設計中去。本文接下來將圍繞設計模式及其在軟件設計中的運用展開分析和討論。
【關鍵詞】設計模式 軟件設計 運用
設計模式的功能主要是針對面向對象進行設計的過程中頻繁出現的設計中反復出現的設計問題給出具體且行之有效的解決方案。設計模式概念誕生于上世紀九十年代,是由Erich Gamma 等人從建筑設計領域引入到計算機領域內的。在當下有關于設計模式尚存許多有爭議的話題,但因其可以給出一套完整的軟件設計公共語言,使得一些相關的工作人員能夠分享高端設計大師們的寶貴經驗,這種爭議的聲音也就逐漸趨于平靜。說到設計模式的作用還遠不止以上那些,其最為讓人稱道的是軟件的重構提供了目標。
1 設計模式相關概述
追溯設計模式的起源其是一種源于建筑學的概念,被導入到計算機領域之后其主要的功能是記錄軟件開發人員發覺出的一系列共性問題以及軟件開發人員經驗證所得出的成功解,并且理清特定上下文所表現出來的問題及其與之對應的解決方案之間的聯系。本文所提及的軟件設計模式當前多是用于明確設計模式與另外的面向對象設計方式的關系,并且得出兩者之間所適應的范圍等等。
2 設計模式的具體分類
設計模式的分類大體可以分為行為型、創建型以及結構型。其中各個分支又可以進行進一步的細分。
行為型模式可細分為以下幾種:備忘錄模式、迭代器模式、解釋器模式、觀察者模式以及中介者模式。
創建型模式可細分為以下幾種:原型模式、單例式模式、建造模式、抽象工廠以及工廠方法模式。
結構型模式可細分為以下幾種:享元模式、組合模式、橋模式、外觀模式以及裝飾模式。
3 設計模式在軟件設計中的運用
當下國內的軟件設計模式普遍都是運用于兩個層面。首先,待到整個軟件系統結構搭建初步完成后,可以及時的加入滿足特殊需求的組件以及給予模塊指定的設計使其在功能上更加靈活。軟件設計模式本身就具有明顯的復雜性,這也就使其無法用于相關具體的軟件設計,一種原因是由于設計模式在運用的過程中得不到指導,另一種原因是軟件設計模式所對應的設計師在設計的過程中沒能夠正確的把握設計方向。
3.1 設計模式的一系列步驟
為了使設計模式的效果達到最佳,應充分的遵照下列步驟進行:
(1)抽象化有待進行解決的種種問題,類型實施合理規劃拆分。
(2)針對問題所屬類型采取適用于這一類型的設計模式。
(3)規劃問題并進行相應的模式匹配。并且把問題與選擇的模式兩者進行對比得出相互間共同存在的特性。針對需要解決問題所涉及的整體區域進行所有類及其對應的模式進行通盤歸納,在此過程中一旦發現所采用的設計模式并不適合立即重新返回第三步進行重新設計。
(4)對所采用的設計模式進行變體,所采用的方式可以是對初始結構拓展或修正,以便及時的解決當中所存在的問題。
(5)對所涉及到的軟件體系進行結構細化使其進一步完善。
(6)對設計質量實施度量。
3.2 設計模式選取
在軟件設計過程中設計模式的選取至關重要,選取恰到好處的軟件設計模式,一般要充分結合以下幾點因素。
(1)事先總結出在設計進行過程中哪些因素是非固定存在即可以變化。
(2)充分考慮設計模式對所遇到的問題的解決方式,并且分析所給出的解決方式是否行之有效。
(3)明確反復進行檢查的原因是什么,所選用的設計模式是否可以很好地解決此類問題。
(4)對設計模式的主要方向實施瀏覽。
(5)需要對與目相關的模式進行研究。
(6)清晰地了解并掌握模式是如何實現相互關聯的。
3.3 設計模式的應用
待到軟件設計模式選定以后,在執行的過程中需要嚴格遵照科學方式方法進行設計。
(1)將其所設計的模型實施詳細瀏覽。
(2)深入的對協作、結構以及參與者三部分進行研究探討。
(3)仔細觀察代碼示例部分以及觀察相關的一系列案例。
(4)選取設計模式相關參與者名字,以使其在全文的運用上更具鮮明的意義。
(5)對設計中所涉及的類進行定義。第六,對應用中的操作名稱采取在定義模式中專用,良好的實現在設計模式中的責任與協作的操作。
4 結語
進入新世紀以來,在軟件設計面向對象領域工作者們所收獲的最有意義的成就就是設計模式概念問世與其所得到的穩定發展。從設計模式由建筑領域被引入計算機領域以來,設計模式概念被提出至今其憑借著表達的清晰性和簡潔性備受廣泛關注,自身擁有的強大適用性也得到了深入的發掘。實踐是檢驗一切的唯一標準,反觀設計模式從出現至今這一路走來,設計模式在軟件設計中的運用經受住了一次又一次的檢驗,時光荏苒相信隨著面向對象理論的發展,設計模式在軟件設計中的運用也定會愈加完善。
參考文獻
[1]G Vanmeerbeeck,P.Schaumont,S.Vernalde,M.Engels,and L Bolsens.Hardware/Software Partitioning of Embedded System in OCAPI -xl.Proc.of the Ninth Int.Symposium on Hardware/Software Codesign(CODES' 2009),2009(22):26-29.
[2]姜昌華,胡幼華,楊旭麗,張婕潔.一個基于遺傳算法的仿真優化包的設計與實現[A].系統仿真技術及其應用(第7卷)——2010系統仿真技術及其應用學術交流會論文選編[C].2010(12):16-19.
[3]蘇飛,張能立,王紫綺,萬小林.面向對象設計模式在B/S 架構Web應用中的運用[J].武漢理工大學學報(信息與管理工程版),2009(08):09-11.
作者單位
山東省北鎮中學高三3班 山東省濱州市 256600