鐘睿
摘要 設(shè)計(jì)模式是一套能夠被重復(fù)使用、經(jīng)過分類的、多人協(xié)作的代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié),在軟件設(shè)計(jì)中有著重要作用,可以讓軟件代碼可靠性更高,更容易被人理解。本文介紹了設(shè)計(jì)模式的概念,并對(duì)其進(jìn)行了簡單的分類,闡述了設(shè)計(jì)模式的選擇以及應(yīng)用。
【關(guān)鍵詞】軟件設(shè)計(jì) 設(shè)計(jì)模式 應(yīng)用
在信息技術(shù)快速發(fā)展的今天,許多工作領(lǐng)域都離不開軟件設(shè)計(jì),軟件可以大大提高人們的工作效率,給人們帶來很大的便利。在軟件設(shè)計(jì)中,設(shè)計(jì)模式的合理利用可以讓相關(guān)軟件代碼能夠得到重復(fù)使用,提高軟件設(shè)計(jì)的效率,同時(shí)還增強(qiáng)了軟件代碼的可靠性。目前軟件設(shè)計(jì)模式已經(jīng)取得了一定的成果,但是從社會(huì)需求和社會(huì)發(fā)展而言,設(shè)計(jì)模式還有著很大的提升空間,在這種的背景下,研究軟件設(shè)計(jì)模式對(duì)于相關(guān)從業(yè)人員而言,具有一定的借鑒意義。
1 設(shè)計(jì)模式的概述
在面對(duì)對(duì)象的軟件設(shè)計(jì)中,通常會(huì)有許多問題會(huì)重復(fù)出現(xiàn)。解決這些問題的有效辦法就是設(shè)計(jì)模式,設(shè)計(jì)模式的概念最早是從建筑學(xué)中誕生的,當(dāng)初主要是為了讓建筑設(shè)計(jì)人員解決在設(shè)計(jì)時(shí)遇到的重復(fù)問題。隨著技術(shù)的發(fā)展,設(shè)計(jì)模式逐漸從建筑領(lǐng)域轉(zhuǎn)化為計(jì)算機(jī)領(lǐng)域,主要關(guān)注的是面向?qū)ο筌浖O(shè)計(jì)中容易出現(xiàn)的重復(fù)問題,不同的設(shè)計(jì)模式都有著各自特有的強(qiáng)度和語境,強(qiáng)度在設(shè)計(jì)模式中作為語境的元素,而強(qiáng)度則是對(duì)設(shè)計(jì)模式的使用情況進(jìn)行解釋。在軟件設(shè)計(jì)中,設(shè)計(jì)模式主要完成對(duì)多數(shù)驗(yàn)證正確的提煉和記錄。
2 設(shè)計(jì)模式的分類
不同的設(shè)計(jì)模式都有著各自的適用環(huán)境和特點(diǎn),在進(jìn)行模式的選取之前,首先要了解不同的設(shè)計(jì)模式,只有這樣,才可以在實(shí)際的軟件設(shè)計(jì)中靈活運(yùn)用,常見的設(shè)計(jì)模式包括以下幾種:
2.1 享元模式
在軟件設(shè)計(jì)中,經(jīng)常會(huì)遇到很多共性較大、相似的對(duì)象,這種情況對(duì)系統(tǒng)的性能會(huì)產(chǎn)生一定的負(fù)面影響。享元模式可以較好的解決這個(gè)問題,該模式可以提取多個(gè)對(duì)象的相似信息,并將他們分類成為新的Flyweight對(duì)象,如果要對(duì)原來的信息進(jìn)行復(fù)原的話,可以在Flyweight對(duì)象中進(jìn)行,這樣可以有效地減少設(shè)計(jì)中程序?qū)ο蟮膭?chuàng)建,減小內(nèi)存的占用率,同時(shí)提高軟件程序的性能。
2.2 0bserver模式
該設(shè)計(jì)模式可以在軟件對(duì)象中建立一對(duì)多的對(duì)應(yīng)關(guān)系,如果此模式中的一個(gè)對(duì)象發(fā)生變化時(shí),建立對(duì)應(yīng)關(guān)系的其他對(duì)象也會(huì)及時(shí)更新。在軟件的界面設(shè)計(jì)中,Observer模式的應(yīng)用較為廣泛,在軟件開發(fā)過程中,往往需要把軟件的業(yè)務(wù)邏輯同用戶的界面分離開,而Observer模式則可以有效地避免這種情況的發(fā)生。同時(shí),Observer模式還可以很好的解決對(duì)象之間的狀態(tài)同步問題,如果一個(gè)用戶視圖的數(shù)據(jù)發(fā)生更改后,相應(yīng)的后臺(tái)數(shù)據(jù)庫也會(huì)進(jìn)行同步的自動(dòng)更新。
2.3 組合模式
組合模式主要功能是把軟件對(duì)象劃分為“整體-部分”的層次,也就是樹狀結(jié)構(gòu),可以有效地使單個(gè)對(duì)象和復(fù)合對(duì)象在實(shí)際的使用時(shí)能夠保持較好的一致性。在軟件界面設(shè)計(jì)中,組合模式的應(yīng)用也十分廣泛,比如可以利用此模式操作圖形對(duì)象,能夠有效地提高代碼的可重復(fù)程度,使軟件設(shè)計(jì)更加規(guī)范。
3 設(shè)計(jì)模式的選取和在軟件設(shè)計(jì)中的應(yīng)用
目前設(shè)計(jì)模式在軟件設(shè)計(jì)中的應(yīng)用主要表現(xiàn)在:
(1)在進(jìn)行軟件開發(fā)之前,就把設(shè)計(jì)模式計(jì)劃應(yīng)用到設(shè)計(jì)的多個(gè)環(huán)節(jié)之中;
(2)在軟件設(shè)計(jì)的過程中,相關(guān)的工作已經(jīng)開展,例如軟件結(jié)構(gòu)己初步設(shè)計(jì)完成后,為了保證軟件的組件和模塊更加靈活,從而應(yīng)用設(shè)計(jì)模式。
3.1 設(shè)計(jì)模式的選取
3.1.1 設(shè)計(jì)模式的選擇
在選擇設(shè)計(jì)模式時(shí)往往要考慮多方面的因素:
(1)要充分考慮軟件設(shè)計(jì)過程中的可變因素:
(2)充分考慮不同的設(shè)計(jì)模式可以解決哪些問題以及他們各自的工作原理;
(3)了解瀏覽模式的意圖;
(4)充分比較研究多個(gè)相似的模式;
(5)了解不同的分析模式之間如何進(jìn)行連接。
3.1.2 設(shè)計(jì)模式的選擇步驟
為了能夠在設(shè)計(jì)軟件中高效地應(yīng)用設(shè)計(jì)模式,選擇的步驟主要包括:
(1)將要解決的問題抽象化,并進(jìn)行合理科學(xué)的劃分;
(2)根據(jù)實(shí)際問題的不同選擇合適的設(shè)計(jì)模式;
(3)將問題進(jìn)行規(guī)劃并匹配設(shè)計(jì)模式;
(4)將選擇的模式進(jìn)行變體,適當(dāng)?shù)男薷暮驼{(diào)整設(shè)計(jì)模式的原始結(jié)構(gòu),便于有問題的解決;
(5)細(xì)化軟件體系的結(jié)構(gòu);
(6)衡量度量設(shè)計(jì)的質(zhì)量。
3.2 設(shè)計(jì)模式的應(yīng)用
選取合適的設(shè)計(jì)模式后,如何科學(xué)合理的應(yīng)用也十分重要:
(1)詳細(xì)了解設(shè)計(jì)模式;
(2)仔細(xì)觀察代碼示例部分和形式案例;
(3)明確模式參與者在應(yīng)用中的實(shí)際意義;
(4)需要定義類;
(5)使用專門的操作名稱,便于軟件設(shè)計(jì)中多人協(xié)作的良好實(shí)現(xiàn)。
4 結(jié)語
在面向?qū)ο蟮能浖O(shè)計(jì)領(lǐng)域,設(shè)計(jì)模式得到了廣泛的應(yīng)用,同時(shí)也有許多新的研究成果誕生。相信在今后的軟件設(shè)計(jì),特別是面向?qū)ο筌浖O(shè)計(jì)中,設(shè)計(jì)模式將會(huì)得到更好的發(fā)展和應(yīng)用。
參考文獻(xiàn)
[1]周宇,趙洪達(dá),張倩雯,軟件設(shè)計(jì)模式課程實(shí)驗(yàn)教學(xué)系統(tǒng)探索[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2017,26(05):86-90.
[2]段群,吳粉俠,歐陽宏基.軟件設(shè)計(jì)模式在目標(biāo)考核系統(tǒng)中的應(yīng)用[J].自動(dòng)化技術(shù)與應(yīng)用,2017,36(09): 60-63.
[3]張偉奇.軟件設(shè)計(jì)模式在氣象觀測(cè)軟件開發(fā)中的應(yīng)用[J],儀器儀表用戶,2017,24(10): 68-71.
[4]張璞,夏英,軟件設(shè)計(jì)模式在Java程序設(shè)計(jì)課程教學(xué)中的應(yīng)用研究[J].軟件工程,2017,20(07):15 -18.
[5]成冬梅,基于設(shè)計(jì)模式與軟件工程的圖像文件管理系統(tǒng)研究[J],微型電腦應(yīng)用,2016,32(02):29- 31.
[6]李菊.基于設(shè)計(jì)模式與軟件工程的圖像文件管理系統(tǒng)探討[J].電腦知識(shí)與技術(shù),2017,13(07):11-12.