999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

設(shè)計模式及如何選擇設(shè)計模式

2014-06-20 01:46:56陳小麗
無線互聯(lián)科技 2014年2期
關(guān)鍵詞:設(shè)計原則

陳小麗

摘 要:針對當(dāng)前軟件行業(yè)普遍借鑒的設(shè)計模式,提出了如何選擇設(shè)計模式,討論了設(shè)計原則。

關(guān)鍵詞:設(shè)計模式;設(shè)計原則;設(shè)計模式的選擇

設(shè)計模式是面向?qū)ο蠹夹g(shù)的最新進展之一,它針對不斷重復(fù)出現(xiàn)的問題,能夠復(fù)用已有的、優(yōu)秀的解決方案,因此提高了軟件開發(fā)質(zhì)量和代碼重用性。

1 設(shè)計模式概念

設(shè)計模式是“對一些經(jīng)過定制、能相互通信的對象和類的描述,用來解決特定場景下某個普遍的設(shè)計問題。”GOF經(jīng)典設(shè)計模式使用類圖、對象圖、交互圖等顯示類與對象之間的關(guān)系和通信。其中類圖用來描述各個類、類的結(jié)構(gòu)以及它們之間的關(guān)系,對象圖描述對象結(jié)構(gòu),而交互圖描述的是對象間發(fā)生關(guān)系的流程。

設(shè)計模式種類眾多,在GOF經(jīng)典設(shè)計模式中,達23種之多,設(shè)計模式分類主要是根據(jù)目的準(zhǔn)則和范圍準(zhǔn)則。目的準(zhǔn)則說明模式是用來完成什么工作的,根據(jù)目的準(zhǔn)則,模式可分為三種:(1)創(chuàng)建型:設(shè)計模式與對象創(chuàng)建無關(guān),把對象的創(chuàng)建和其它部分的代碼分離,從而創(chuàng)建對象會更加靈活。例如設(shè)計模式中的簡單工廠模式,工廠方法模式,抽象工廠模式,創(chuàng)建者模式,原型模式,單例模式;(2)結(jié)構(gòu)型:模式結(jié)構(gòu)清晰,主要處理類或?qū)ο蟮慕M合,但是模式的每一部分的結(jié)構(gòu)都專門負責(zé)完成某一職責(zé)。例如設(shè)計模式中的外觀模式,適配器模式,代理模式,裝飾模式,橋模式,組合模式,享元模式;(3)行為型:行為類模式主要描述類或?qū)ο笾g的交互,以及類和對象的主要職責(zé)模板方法模式,觀察者模式,狀態(tài)模式,策略模式,職責(zé)鏈模式,命令模式,訪問者模式,調(diào)停者模式,備忘錄模式,迭代器模式,解釋器模式。范圍準(zhǔn)則關(guān)注模式的制定主要用于類還是對象,其中“類模式”處理類與類之間的繼承關(guān)系,這種關(guān)系是靜態(tài)的,而“對象模式”處理對象之間的關(guān)系,這種關(guān)系是動態(tài)的。設(shè)計模式種類繁多,如何選出一個針對特定設(shè)計問題的模式是十分困難的。因此選擇適合特定設(shè)計問題的設(shè)計模式,是人們比較關(guān)心的問題。

2 設(shè)計模式的選擇

設(shè)計模式是面向?qū)ο蟮母邔哟谓鉀Q方案,它不會過于關(guān)注具體問題的細節(jié),所以應(yīng)該把現(xiàn)實世界中存在的問題進行抽象,設(shè)計模式在選擇對象和決定對象粒度方面都能起到作用。

⑴選擇合適的對象。設(shè)計模式的對象來源于現(xiàn)實世界的抽象模型,針對具體問題描述,進行抽象,創(chuàng)建類和操作。但是在這些分析模型中得到的一些層次較高或較低的類,在現(xiàn)實世界里并不存在,比如數(shù)組等,設(shè)計模式能夠確定這些在現(xiàn)實世界中找不到的類。

⑵決定對象粒度大小。設(shè)計模式能夠決定對象的大小和數(shù)目,例如,外觀模式能夠使用對象表示完整的子系統(tǒng),享元模式的對象粒度最小且數(shù)目眾多,抽象工廠模式能夠生產(chǎn)其它對象的對象。這些設(shè)計模式為對象粒度的選擇提供了一定的依據(jù)。每一種設(shè)計模式都是為解決一類問題而出現(xiàn)的,例如:橋接(Bridge)模式屬于結(jié)構(gòu)性模式,其意圖是分離抽象部分和實現(xiàn)部分,使這兩部分相互獨立,不會相互影響;解釋器(Interpreter)模式屬于行為模式,它的意圖是給定一個語言及其語法語義,并定義一個解釋器,用來使用這些語法語義表示這個語言的含義;生成器(Builder)模式屬于創(chuàng)建型模式,它的意圖是把復(fù)雜對象的構(gòu)建和它的表示分開,使得同一個創(chuàng)建過程可以含有不同的表示。只有了解了設(shè)計模式的意圖,才會比較容易地選擇出,適合實際問題的一個或多個設(shè)計模式。

盡管設(shè)計模式在粒度和抽象層次上各不相同,但是它們之間還是具有一些關(guān)聯(lián),根據(jù)目的和使用范圍不同,對設(shè)計模式進行了分類。分類能夠指導(dǎo)應(yīng)用設(shè)計模式的目的和范圍,目的準(zhǔn)則中的創(chuàng)建型模式與對象的創(chuàng)建有關(guān),結(jié)構(gòu)性模式關(guān)注于類或者對象的組合,行為性模式描述了類或者對象的交互關(guān)系和職責(zé)分配,范圍準(zhǔn)則是以類和對象來劃分的,類模式是研究類與子類之間的靜態(tài)關(guān)系,而對象模式關(guān)注的是對象之間的動態(tài)關(guān)系。如果確定了業(yè)務(wù)邏輯的目的和元素,就能縮小設(shè)計模式的選擇范圍,能夠快速獲得適合的設(shè)計模式或者模式組。

3 設(shè)計原則

⑴單一職責(zé)原則,即不能存在多于一個導(dǎo)致類變更的原因。簡單的說就是一個類只負責(zé)一項職責(zé)。在軟件設(shè)計中,秉承著“高內(nèi)聚,低耦合”的思想,讓一個類僅負責(zé)一項職責(zé)。

⑵里氏替換原則,如果對每一個類型為T1的對象o1,都有類型為T2的對象o2,使得以T1定義的所有程序P在所有的對象o1都換成o2時,程序P的行為沒有變化,那么類型T2是類型T1的子類型。包含4層含義:①子類可以實現(xiàn)父類的抽象方法,但是不能覆蓋父類的非抽象方法。②子類可以實現(xiàn)父類的抽象方法,但是不能覆蓋父類的非抽象方法。③當(dāng)子類覆蓋或?qū)崿F(xiàn)父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入?yún)?shù)更寬松。④當(dāng)子類覆蓋或?qū)崿F(xiàn)父類的方法時,方法的前置條件(即方法的形參)要比父類方法的輸入?yún)?shù)更寬松。

⑶依賴倒置原則,高層模塊不應(yīng)該依賴低層模塊,兩者都應(yīng)該依賴其抽象,抽象不應(yīng)該依賴細節(jié),細節(jié)應(yīng)該依賴抽象。

⑷接口隔離原則,接口中的方法應(yīng)該盡量少,不要使接口過于臃腫,不要有很多不相關(guān)的邏輯方法。

總之,原則是前人經(jīng)驗的總結(jié),在軟件設(shè)計中具有一定的指導(dǎo)作用,但是不能完全照搬這些原則。對于接口隔離原則來說,接口盡量小,但是也要有限度。對接口進行細化可以提高程序設(shè)計靈活性是不爭的事實,但是如果過小,則會造成接口數(shù)量過多,使設(shè)計復(fù)雜化,所以一定要適度。

[參考文獻]

[1]劉奎,袁兆山,陳剛,宋淼,王一雄.基于XML的設(shè)計模式描述及其存儲[J].合肥工業(yè)大學(xué)學(xué)報(自然科學(xué)版).2005(06).

[2]鐘金琴,辜麗川,張友華,朱誠.設(shè)計模式的一種形式化描述方法[J].微電子學(xué)與計算機. 2009(06).

猜你喜歡
設(shè)計原則
開放空間格局下圖書館導(dǎo)視系統(tǒng)的設(shè)計與思考
產(chǎn)品設(shè)計中的界面設(shè)計
談舞臺燈光的設(shè)計原則
基于人文關(guān)懷背景下的適老居室空間研究
人間(2016年30期)2016-12-03 22:51:17
從課外活動視角探討英語專業(yè)學(xué)生自主學(xué)習(xí)能力培養(yǎng)
基于移動互聯(lián)網(wǎng)絡(luò)環(huán)境的MOOC微課程研究
考試周刊(2016年84期)2016-11-11 23:37:53
淺析初中語文教學(xué)提問設(shè)計的創(chuàng)新
考試周刊(2016年85期)2016-11-11 00:51:00
智慧產(chǎn)品形態(tài)造型語言研究
網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)總體架構(gòu)設(shè)計
建筑電氣設(shè)計原則及可行性對策
主站蜘蛛池模板: 香蕉视频国产精品人| 亚洲人成色77777在线观看| 无码电影在线观看| 欧美一级特黄aaaaaa在线看片| 国产在线高清一级毛片| 精品91自产拍在线| 91口爆吞精国产对白第三集| 久久免费视频6| 久久国产精品麻豆系列| 国产H片无码不卡在线视频| 欧美一区二区三区国产精品| 色窝窝免费一区二区三区 | 99中文字幕亚洲一区二区| 亚洲第一区欧美国产综合| 欧美色99| 国产激爽爽爽大片在线观看| 免费一极毛片| 91欧美在线| 欧美一级大片在线观看| 日韩精品无码免费专网站| 色首页AV在线| 国产精品久久精品| 欧美在线网| 成人在线第一页| 国产成人精品一区二区三区| 五月婷婷丁香综合| 久久五月视频| 亚洲欧洲AV一区二区三区| 免费全部高H视频无码无遮掩| 免费观看三级毛片| 日韩精品少妇无码受不了| 精品91自产拍在线| 日本黄色不卡视频| 97亚洲色综久久精品| 永久在线精品免费视频观看| 999国产精品永久免费视频精品久久 | 久久久国产精品无码专区| 国产精品永久免费嫩草研究院| 欧美亚洲一二三区| 热九九精品| 人禽伦免费交视频网页播放| 干中文字幕| 国产黑丝视频在线观看| 亚洲第一av网站| 在线观看视频一区二区| 国产黄色免费看| 国产在线视频自拍| 亚洲国产精品不卡在线| 日韩精品一区二区三区视频免费看| 国产第一页亚洲| 91精品国产无线乱码在线| 无码aaa视频| 精品欧美一区二区三区在线| 丝袜亚洲综合| 欧美在线网| 婷婷综合缴情亚洲五月伊| 99视频精品全国免费品| 欧美日本在线| 久久一本精品久久久ー99| 麻豆精品视频在线原创| 人妖无码第一页| 国产欧美中文字幕| 午夜限制老子影院888| 国产亚洲男人的天堂在线观看| 亚洲熟女偷拍| 亚洲va在线∨a天堂va欧美va| 幺女国产一级毛片| 专干老肥熟女视频网站| 国产三级韩国三级理| 免费国产好深啊好涨好硬视频| 久久青青草原亚洲av无码| 欧美日韩中文国产| 精品国产电影久久九九| 欧美综合区自拍亚洲综合天堂 | 一区二区三区高清视频国产女人| yjizz视频最新网站在线| 欧美精品啪啪| 日韩第一页在线| 久久青草视频| 国产成年女人特黄特色毛片免| 综合亚洲网| 欧美精品二区|