<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    零雨其蒙's Blog

    做優(yōu)秀的程序員
    隨筆 - 59, 文章 - 13, 評(píng)論 - 58, 引用 - 0
    數(shù)據(jù)加載中……

    零雨其蒙《UML和模式應(yīng)用》學(xué)習(xí)筆記(六)

    (零雨其蒙原創(chuàng) 轉(zhuǎn)載請(qǐng)注明)
    2007
    3 9 日星期五

    ?

    23 迭代 2 :更多模式

    在前面學(xué)習(xí)用例的時(shí)候,已經(jīng)知道一個(gè)用例包含多個(gè)場(chǎng)景(主成功場(chǎng)景和擴(kuò)展場(chǎng)景),由于 UP 倡導(dǎo)的是增量式開發(fā),因此 Larman 給出了一些建議:在多次迭代中對(duì)同一用例的不同場(chǎng)景或特性進(jìn)行工作,并且逐漸地?cái)U(kuò)展系統(tǒng)以最終實(shí)現(xiàn)對(duì)所有功能需求的處理。但是,不應(yīng)該把一個(gè)場(chǎng)景分開在多次迭代中處理 , 一次迭代應(yīng)該完成一個(gè)或多個(gè)端到端的場(chǎng)景。( P294

    即一個(gè)用例可以分多次迭代完成(每次至少完成一個(gè)場(chǎng)景),一個(gè)場(chǎng)景必須在一次迭代中完成

    ?

    24 快速地更新分析

    P297 使用 UP 的過程成熟標(biāo)志是 ,知道何時(shí)創(chuàng)建制品能夠帶來顯著價(jià)值,或是當(dāng)遇到呆板的“完成作業(yè)”式的步驟時(shí)能夠較好地略過。

    ?

    ?

    創(chuàng)建子類的準(zhǔn)則

    當(dāng)遇到下列情況時(shí),創(chuàng)建超類的概念子類:

    1) ? 子類具有我們感興趣的額外屬性

    2) ? 子類具有我們感興趣的額外關(guān)聯(lián)

    3) ? 對(duì)子類概念的影響、處理、反應(yīng)和操作與超類或其他子類有顯著的差異

    ?

    ?

    關(guān)于子類和超類的其他準(zhǔn)則(這些都是基于領(lǐng)域模型的討論,也就是在分析時(shí)觀點(diǎn))

    準(zhǔn)則 :將超類聲明為抽象類。雖然這是與軟件無(wú)關(guān)的概念觀點(diǎn),但是也是常用的 OO 準(zhǔn)則,即所有軟件超類都是抽象的

    準(zhǔn)則 :在子類上附以超類名稱。(如超類是 Square ,則子類名就是 GoSquare RegularSquare 等)

    ?

    ?

    25 GRASP :更多具有職責(zé)的對(duì)象

    ?

    ?? 在這一章中 larman 介紹了前面沒有介紹過的四個(gè) GRASP 模式:多態(tài)、間接性、純虛構(gòu)和防止變異。經(jīng)過這章的學(xué)習(xí)之后, GRASP 9 個(gè)模式就學(xué)全了 ~ 按照 Larman 的說法,那時(shí)我們就擁有了討論設(shè)計(jì)的豐富、共享的詞匯

    ?

    Polymorphism 多態(tài)

    問題: 如何處理基于類型的選擇?如何創(chuàng)建可插拔的軟件構(gòu)件?

    解決方案: 當(dāng)相關(guān)選擇或行為隨類型(類)有所不同時(shí),使用多態(tài)操作為變化的行為類型分配職責(zé)。

    推理: 不要測(cè)試對(duì)象的類型,也不要使用條件邏輯來執(zhí)行基于類型的不同選擇。

    ?

    多態(tài)使我們不再使用條件分支語(yǔ)句來解決條件變化問題,前面在學(xué)習(xí) Martin Fowler 的《重構(gòu)》時(shí)我回憶了那個(gè)地磅系統(tǒng)中讓人惡心的 case if-else 邏輯程序段,它制造了大量的重復(fù)和讓人感到對(duì)于業(yè)務(wù)過程的不解,從我個(gè)人的實(shí)踐來看,多態(tài)可以很好的解決這一問題,因?yàn)閺?fù)雜性被封裝在了超類和子類的繼承關(guān)系中——那時(shí)我在做一個(gè)搜索引擎時(shí),使用多態(tài)避免了傳統(tǒng)的使用條件分支語(yǔ)句來處理選擇搜索類別的問題(按商品名稱搜索,按作者搜索等類別),它有兩點(diǎn)好處:一個(gè)是簡(jiǎn)潔,一個(gè)是清楚。可以很輕易的看出其邏輯關(guān)系。因此廢棄條件分支語(yǔ)句吧,在 [ 問題 ] Larman 實(shí)際上已經(jīng)給出了使用多態(tài)的好處,只不過用的是問句。

    ?

    P305 當(dāng)對(duì)象 A 持續(xù)需要對(duì)象 B 中的數(shù)據(jù)時(shí),意味著: 1 )對(duì)象 A 不應(yīng)該持有該數(shù)據(jù);或 2 )對(duì)象 B 而不是對(duì)象 A 應(yīng)該具有這一職責(zé)(基于專家模式)。

    ?

    ?

    ?

    ?

    Pure Fabrication 純虛構(gòu)

    問題: 當(dāng)你并不想違背高內(nèi)聚和低耦合或其他目標(biāo),但是基于專家模式所提供的方案又不合適時(shí),哪些對(duì)象應(yīng)該承擔(dān)這一職責(zé)。

    解決方案: 對(duì)人為制造的類分配一組高內(nèi)聚的職責(zé),該類并不代表問題領(lǐng)域的概念——虛構(gòu)的事物,用以支持高內(nèi)聚、低耦合和復(fù)用

    ?

    ?

    P308-309 信息專家所支持的目標(biāo)是,將職責(zé)與這些職責(zé)所需信息結(jié)合起來賦予同一個(gè)對(duì)象,以實(shí)現(xiàn)對(duì)低耦合的支持。如果濫用純虛構(gòu),會(huì)導(dǎo)致大量行為對(duì)象,其職責(zé)與執(zhí)行職責(zé)所需的信息沒有結(jié)合起來,這樣會(huì)對(duì)耦合產(chǎn)生不良影響。其通常征兆是,對(duì)象內(nèi)的大部分?jǐn)?shù)據(jù)被傳遞給其他對(duì)象用以處理 (即該對(duì)象大量調(diào)用其它對(duì)象的方法來處理其自身的數(shù)據(jù))

    ?

    ?

    Indirection 間接性

    問題: 為了避免兩個(gè)或多個(gè)事物之間直接耦合,應(yīng)該如何分配職責(zé)?如何使對(duì)象解耦合,以支持低耦合并提高復(fù)用性潛力?

    解決方案: 將職責(zé)分配給中介對(duì)象,使其作為其他構(gòu)件或服務(wù)之間的媒介,以避免它們之間的直接耦合。中介實(shí)現(xiàn)了其他構(gòu)件之間的間接性。

    ?

    Protected Variation 防止變異

    問題: 如何設(shè)計(jì)對(duì)象、子系統(tǒng)和系統(tǒng),使其內(nèi)部的變化或不穩(wěn)定不會(huì)對(duì)其他元素產(chǎn)生不良影響?

    解決方案: 識(shí)別預(yù)計(jì)變化或不穩(wěn)定之處,分配職責(zé)用以在這些變化之外創(chuàng)建穩(wěn)定的接口。注意:這里使用的“接口”指的是廣泛意義上的訪問視圖,而不僅僅是諸如 Java 接口等字面含義。

    ?????????????

    posted on 2007-03-20 14:48 零雨其蒙 閱讀(511) 評(píng)論(0)  編輯  收藏 所屬分類: 學(xué)習(xí)筆記

    主站蜘蛛池模板: 精品多毛少妇人妻AV免费久久| 亚洲AV无码乱码在线观看牲色| 丝袜足液精子免费视频| 亚洲欧美日韩中文字幕在线一区| 亚洲av最新在线网址| 亚洲综合精品网站| 国产免费小视频在线观看| 无码免费午夜福利片在线| 亚洲免费在线视频| a级毛片免费全部播放| 一区二区三区在线免费观看视频| 亚洲精品美女久久7777777| 亚洲欧洲精品久久| 亚洲av福利无码无一区二区| 亚洲人成中文字幕在线观看| 亚洲人成无码网WWW| 亚洲av麻豆aⅴ无码电影| 国产一区二区三区在线观看免费| 最近高清国语中文在线观看免费| 亚洲一区在线免费观看| 13一14周岁毛片免费| 69av免费观看| 99热这里只有精品6免费| 无码人妻一区二区三区免费看 | 国产91色综合久久免费分享| 久久免费区一区二区三波多野| 国产免费牲交视频免费播放| 久香草视频在线观看免费| 丰满少妇作爱视频免费观看| 一级毛片视频免费| 精品一区二区三区免费视频 | 国产精品亚洲片在线观看不卡| av在线亚洲欧洲日产一区二区| 亚洲第一永久AV网站久久精品男人的天堂AV | 国产99久久久久久免费看| eeuss影院免费直达入口| WWW国产成人免费观看视频| 国产黄在线观看免费观看不卡 | 亚洲成av人片在线观看无码不卡| 日韩亚洲欧洲在线com91tv| 亚洲天堂男人天堂|