亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        簡(jiǎn)析面向?qū)ο笤O(shè)計(jì)準(zhǔn)則

        2016-03-05 00:15:17張茵
        無線互聯(lián)科技 2015年6期

        張茵

        摘要:面向?qū)ο笤O(shè)計(jì)就是用面向?qū)ο笥^點(diǎn)建立求解空間模型的過程。通過面向?qū)ο蠓治龅贸龅膯栴}域模型為建立求解空間模型奠定了堅(jiān)實(shí)基礎(chǔ),分析與設(shè)計(jì)本質(zhì)上是_個(gè)多次反復(fù)迭代的過程,面向?qū)ο蠓治龊兔嫦驅(qū)ο笤O(shè)計(jì)的界限尤其模糊。文章主要介紹了為獲得優(yōu)秀設(shè)計(jì)結(jié)果應(yīng)該遵循的基本準(zhǔn)則和通過經(jīng)驗(yàn)得出的幾條有助于提高設(shè)計(jì)質(zhì)量的啟發(fā)式規(guī)則。有助于讀者更加清楚的了解面向?qū)ο笤O(shè)計(jì)的優(yōu)勢(shì)。

        關(guān)鍵詞:面向?qū)ο笤O(shè)計(jì);準(zhǔn)則;啟發(fā)式規(guī)則

        0 引言

        所謂優(yōu)秀設(shè)計(jì),就是權(quán)衡了各種因素,從而使得系統(tǒng)在其整個(gè)生命周期中的總開銷最小的設(shè)計(jì)。指導(dǎo)軟件設(shè)計(jì)的基本原理在進(jìn)行面向?qū)ο笤O(shè)計(jì)時(shí)仍然成立,但是增加了一些與面向?qū)ο蠓椒芮邢嚓P(guān)的新特點(diǎn),從而具體化為下列面向?qū)ο笤O(shè)計(jì)準(zhǔn)則。

        1 面向?qū)ο笤O(shè)計(jì)準(zhǔn)則

        1.1 模塊化

        面向?qū)ο筌浖_發(fā)模式,很自然地支持了把系統(tǒng)分解成模塊的設(shè)計(jì)原理:對(duì)象就是模塊。它是把數(shù)據(jù)結(jié)構(gòu)和操作這些數(shù)據(jù)的方法緊密的結(jié)合在一起所構(gòu)成的模塊。

        1.2 抽象

        面向?qū)ο蠓椒ú粌H支持過程抽象,而且支持?jǐn)?shù)據(jù)抽象。類實(shí)際上是一種抽象數(shù)據(jù)類型,它對(duì)外開放的公共接口構(gòu)成了類的規(guī)格說明,這種接口規(guī)定了外界可以使用的合法操作符,利用這些操作符可以對(duì)類實(shí)例中包含的數(shù)據(jù)進(jìn)行操作。使用者無須知道這些操作符的實(shí)現(xiàn)算法和類中數(shù)據(jù)元素的具體表示方法,就可以通過這些操作符使用類中定義的數(shù)據(jù)。通常這類抽象稱為規(guī)格說明抽象。

        某些面向?qū)ο蟮某绦蛟O(shè)計(jì)語言還支持參數(shù)化抽象。所謂參數(shù)化抽象,是指當(dāng)描述類的規(guī)格說明時(shí)不具體制定所要操作的數(shù)據(jù)類型,而是把數(shù)據(jù)類型作為參數(shù)。這使類的抽象程度更高,應(yīng)用范圍更廣,可重用性更高。

        1.3 信息隱藏

        在面向?qū)ο蠓椒ㄖ?,信息隱藏通過對(duì)象的封裝性實(shí)現(xiàn):類結(jié)構(gòu)分離了接口和實(shí)現(xiàn),從而支持了信息隱藏。對(duì)于類的用戶來說,屬性的表示方法和操作的實(shí)現(xiàn)算法都應(yīng)該是隱藏的。

        1.4 弱耦合

        耦合是指一個(gè)軟件結(jié)構(gòu)內(nèi)不同模塊之間互連的緊密程度。在面向?qū)ο蠓椒ㄖ校瑢?duì)象是最基本的模塊,耦合主要指不同對(duì)象之間互相關(guān)聯(lián)的緊密程度。弱耦合是優(yōu)秀設(shè)計(jì)的一個(gè)重要標(biāo)準(zhǔn),因?yàn)檫@有助于使得系統(tǒng)中某一部分的變化對(duì)其他部分的影響降到最低程度。

        如果一類對(duì)象過多依賴其他類對(duì)象完成自己的工作,不僅給理解、測(cè)試或修改這個(gè)類帶來很大困難,而且還將大大降低該類的可重用性和可移植性。類之間的這種相互依賴關(guān)系是緊耦合。對(duì)象不可能是完全孤立的,當(dāng)兩個(gè)對(duì)象必須相互聯(lián)系相互依賴時(shí),應(yīng)該通過類的協(xié)議實(shí)現(xiàn)耦合,不應(yīng)該依賴于類的具體實(shí)現(xiàn)細(xì)節(jié)。

        1.4.1 交互耦合

        如果對(duì)象之間的耦合通過消息連接來實(shí)現(xiàn),這種耦合叫交互耦合。為使交互耦合盡可能松散,應(yīng)遵循下述準(zhǔn)則:

        (1)盡量降低消息連接的復(fù)雜程度。應(yīng)該盡量減少消息中包含的參數(shù)個(gè)數(shù),降低參數(shù)的復(fù)雜程度。

        (2)減少對(duì)象發(fā)送的消息數(shù)。

        1.4.2 繼承耦合

        與交互耦合相反,應(yīng)該提高繼承耦合程度。繼承是一般化類與特殊類之間耦合的一種形式。從本質(zhì)上看,通過繼承關(guān)系結(jié)合起來的基類和派生類,構(gòu)成了系統(tǒng)中粒度更大的模塊。因此它們彼此之間應(yīng)該結(jié)合的越緊密越好。

        為獲得緊密的繼承耦合,特殊類應(yīng)該確實(shí)是對(duì)它的一般化類的一種具體化。如果一個(gè)派生類擯棄了它基類的許多屬性,他們之間是松耦合。

        1.5 強(qiáng)內(nèi)聚

        內(nèi)聚衡量一個(gè)模塊內(nèi)各個(gè)元素彼此結(jié)合的緊密程度。也可以把內(nèi)聚定義為:設(shè)計(jì)中使用的一個(gè)構(gòu)件內(nèi)的各個(gè)元素,對(duì)完成一個(gè)定義明確的目的所作出的貢獻(xiàn)程度。在設(shè)計(jì)時(shí)應(yīng)該力求做到高內(nèi)聚。在面向?qū)ο笤O(shè)計(jì)中存在3種內(nèi)聚:

        (1)服務(wù)內(nèi)聚。一個(gè)服務(wù)應(yīng)該完成一個(gè)且僅完成一個(gè)功能。

        (2)類內(nèi)聚。設(shè)計(jì)類的原則是,一個(gè)類應(yīng)該只有一個(gè)用途,它的屬性和服務(wù)應(yīng)該是高內(nèi)聚的,類的屬性和服務(wù)應(yīng)該全都是完成該類對(duì)象的任務(wù)所必需的,其中不包括無用的屬性或服務(wù)。如果某個(gè)類有多個(gè)用途,通常應(yīng)該把它分解成多個(gè)專用的類。

        (3)一般特殊內(nèi)聚。設(shè)計(jì)出的一般特殊結(jié)構(gòu),應(yīng)該符合多數(shù)人的概念,這種結(jié)構(gòu)應(yīng)該是對(duì)相應(yīng)的領(lǐng)域知識(shí)的正確抽取。

        緊密的繼承耦合與高度的一般特殊內(nèi)聚是一致的。

        1.6 可重用性

        軟件重用是提高軟件開發(fā)生產(chǎn)率和目標(biāo)系統(tǒng)質(zhì)量的重要途徑。重用基本上從設(shè)計(jì)階段開始。重用有兩方面的含義:盡量使用已有的類;如果確實(shí)需要?jiǎng)?chuàng)建新類,則在設(shè)計(jì)這些新類的協(xié)議時(shí),應(yīng)該考慮將來的可重復(fù)使用性。

        2 啟發(fā)規(guī)則

        人們使用面向?qū)ο蠓椒▽W(xué)開發(fā)軟件歷史雖然不長(zhǎng),但也積累了一些經(jīng)驗(yàn)??偨Y(jié)這些經(jīng)驗(yàn)得出了幾條啟發(fā)規(guī)則,它們往往能幫助軟件開發(fā)人員提高面向?qū)ο笤O(shè)計(jì)的質(zhì)量。

        2.1 設(shè)計(jì)結(jié)果應(yīng)該清晰易懂

        使設(shè)計(jì)結(jié)構(gòu)清晰、易讀、易懂,是提高軟件可維護(hù)性和可重用性的重要措施。保證設(shè)計(jì)結(jié)果清晰易懂的主要因素如下:

        (1)用詞一致。名字與它所代表的事物一致,應(yīng)該盡量使用人們習(xí)慣的名字。

        (2)使用已有的協(xié)議。如果開發(fā)同一軟件的其他設(shè)計(jì)人員已經(jīng)建立了類的協(xié)議,應(yīng)該使用這些已有的協(xié)議。

        (3)減少消息模式數(shù)目。如果已有標(biāo)準(zhǔn)的消息協(xié)議,設(shè)計(jì)人員應(yīng)該遵循這些協(xié)議。如果確需自己建立消息協(xié)議,應(yīng)該盡量減少消息模式的數(shù)目,只要可能,就使消息具有一致的模式。

        (4)避免模糊的定義。一個(gè)類的用途應(yīng)該是有限的,而且應(yīng)該從類名可以較容易的推想它的用途。

        2.2 一般一特殊結(jié)構(gòu)的深度應(yīng)適當(dāng)

        應(yīng)該使類等級(jí)中包含的層次數(shù)適當(dāng)。在一個(gè)中等規(guī)模的系統(tǒng)中,類等級(jí)層次數(shù)應(yīng)保持為7-2到7+2范圍內(nèi)。不應(yīng)該僅僅從方便編碼的角度出發(fā)隨意創(chuàng)建派生類,應(yīng)該使一般特殊結(jié)構(gòu)與領(lǐng)域知識(shí)或常識(shí)保持一致。

        2.3 設(shè)計(jì)簡(jiǎn)單的類

        盡量設(shè)計(jì)小而簡(jiǎn)單的類,以便于開發(fā)和管理。當(dāng)類很大的時(shí)候,要記住它的所有服務(wù)是非常困難的。如果一個(gè)類的定義不超過一頁紙,則使用這個(gè)類是比較容易的。為使類保持簡(jiǎn)單,應(yīng)該注意以下幾點(diǎn)。

        (1)避免包含過多的屬性。屬性過多通常表明這個(gè)類過分復(fù)雜,它所完成的功能可能太多了。

        (2)有明確的定義。為了使類的定義明確,分配給每個(gè)類的任務(wù)應(yīng)該簡(jiǎn)單,最好能用一兩個(gè)簡(jiǎn)單語句描述它的任務(wù)。

        (3)盡量簡(jiǎn)化對(duì)象之間的合作關(guān)系。如果需要多個(gè)對(duì)象協(xié)同配合才能做好一件事,則破壞了類的簡(jiǎn)明性和清晰性。

        (4)不要提供太多服務(wù)。一個(gè)類提供的服務(wù)過多,表明這個(gè)類過分復(fù)雜,一個(gè)類提供的服務(wù)不要超過7個(gè)。

        在開發(fā)大型軟件系統(tǒng)時(shí),遵循上述啟發(fā)規(guī)則也會(huì)帶來另一個(gè)問題:設(shè)計(jì)出大量較小的類,這同樣會(huì)帶來一定復(fù)雜性。解決這個(gè)問題的辦法,是把系統(tǒng)中的類按邏輯分組,也就是劃分“主題”。

        2.4 使用簡(jiǎn)單的協(xié)議

        消息中的參數(shù)不要超過3個(gè)。經(jīng)驗(yàn)表明,通過復(fù)雜消息相互關(guān)聯(lián)的對(duì)象是緊耦合的,對(duì)一個(gè)對(duì)象的修改往往導(dǎo)致其他對(duì)象的修改。

        2.5 使用簡(jiǎn)單的服務(wù)

        面向?qū)ο笤O(shè)計(jì)出來的類中的服務(wù)通常都很小,一般只有3-5行源程序語句,可以用僅含一個(gè)動(dòng)詞和一個(gè)賓語的簡(jiǎn)單句子描述它的功能。如果一個(gè)服務(wù)中包含了過多的源程序語句,或語句嵌套層次太多,或使用了復(fù)雜的CASE語句,應(yīng)該仔細(xì)檢查這個(gè)服務(wù),設(shè)法分解或簡(jiǎn)化它。應(yīng)該盡量避免使用復(fù)雜的服務(wù)。如果需要在服務(wù)中使用CASE語句,通常應(yīng)該考慮用一般特殊結(jié)構(gòu)代替這個(gè)類的可能性。

        2.6 把設(shè)計(jì)變動(dòng)減至最小

        設(shè)計(jì)的質(zhì)量越高,設(shè)計(jì)結(jié)果保持不變的時(shí)間也越長(zhǎng)。即使出現(xiàn)必須修改設(shè)計(jì)的情況,也應(yīng)該使修改的范圍盡可能小。在設(shè)計(jì)的早期階段,變動(dòng)較大,隨著時(shí)間推移,設(shè)計(jì)方案日趨成熟,改動(dòng)也越小。

        3 結(jié)語

        分析是提取和整理用戶需求,建立問題域精確模型的過程。設(shè)計(jì)則是把分析得到的需求轉(zhuǎn)變成符合成本和質(zhì)量要求的、抽象的系統(tǒng)實(shí)現(xiàn)方案的過程。系統(tǒng)設(shè)計(jì)確定實(shí)現(xiàn)系統(tǒng)的策略和目標(biāo)系統(tǒng)的高層結(jié)構(gòu),對(duì)象設(shè)計(jì)確定解空間中的類、關(guān)聯(lián)、接口形式以及實(shí)現(xiàn)服務(wù)的算法。面向?qū)ο笤O(shè)計(jì)就是用面向?qū)ο笥^點(diǎn)建立求解域模型的過程。許多分析結(jié)果可以直接映射成設(shè)計(jì)結(jié)果,在設(shè)計(jì)過程中又會(huì)加深和補(bǔ)充對(duì)系統(tǒng)需求的理解,從而進(jìn)一步完善分析結(jié)果。

        午夜天堂精品一区二区| 亚洲一本到无码av中文字幕| 中文字幕av日韩精品一区二区| 中文无码日韩欧免费视频| 亚洲综合中文一区二区| 手机免费在线观看av网址 | 夜夜综合网| 日韩在线中文字幕一区二区三区 | 精品久久久中文字幕人妻| 久久综合视频网站| 国产自拍在线视频观看| 天堂一区二区三区在线观看视频| 国产av丝袜旗袍无码网站| 99国产超薄丝袜足j在线播放| 国产精品久久中文字幕亚洲| 久久久精品国产性黑人| 日韩成人无码| 亚洲婷婷丁香激情| 粗大挺进孕妇人妻在线| 亚洲最全av一区二区| 精品人妻午夜一区二区三区四区| 中国一级毛片在线观看| 久久91精品国产91久久麻豆| 亚洲黄色精品在线播放| 中文字幕人成乱码熟女| 人妻少妇看a偷人无码精品| 久久精品免视看国产盗摄| 最全精品自拍视频在线| 一本到在线观看视频| 麻豆精品久久久久久久99蜜桃| 98在线视频噜噜噜国产| 精品国产乱码久久免费看| 国产区女主播一区在线| 我把护士日出水了视频90分钟| 国产AV无码专区亚洲AⅤ| 日本中文字幕av网址| 富婆猛男一区二区三区| 欧美成妇人吹潮在线播放| 亚洲另类精品无码专区| 国产西西裸体一级黄色大片| 中文字幕av熟女中文av|