日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(七)...

發(fā)布時(shí)間:2023/11/30 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(七)... 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

解決實(shí)際中的大問(wèn)題solving

?really big problems

?

  

  

?引言

????? 時(shí)候構(gòu)建一些真實(shí)的大東西了。你準(zhǔn)備好了嗎?are you ready?你已經(jīng)掌握了一系列的OOA&D工具,但是在現(xiàn)實(shí)環(huán)境中構(gòu)造一個(gè)大系統(tǒng)的時(shí)候,如何使用它們呢?好吧,你可能還沒(méi)有認(rèn)識(shí)到,但是你已經(jīng)具備了構(gòu)造大系統(tǒng)的一切條件。接下來(lái),你將會(huì)學(xué)習(xí)一些新的工具,例如:領(lǐng)域分析和用例圖,但是這些新工具是你以前學(xué)習(xí)的知識(shí)作為基礎(chǔ)的,例如:傾聽客戶的需求,并且在開始寫代碼之前,理解你要構(gòu)建的系統(tǒng)是什么。準(zhǔn)備好,是時(shí)候開始架構(gòu)師工作了。

?正文

????? 所有的材料顯示開發(fā)一個(gè)偉大的軟件非常棒,但是真實(shí)的應(yīng)用可不只是5個(gè)或者是10個(gè)類。

????? 解決大問(wèn)題和解決小問(wèn)題是相同的。

????? 在前面我們做的那個(gè)小應(yīng)用,Guitar商店小于15個(gè)類,狗門小于5個(gè)類。但是,到目前為止,你所學(xué)的一切都可以運(yùn)用到開發(fā)大系統(tǒng)中。

????? 記得開發(fā)偉大的軟件的三個(gè)步驟嗎?

????? 1、確保你的軟件做了用戶需要的事情。

????? 2、應(yīng)用基本的OO原則來(lái)增加靈活性。

????? 3、為可維護(hù)、可重用的設(shè)計(jì)而奮斗。

????? 一切在于你如何看待大問(wèn)題。

????? 在你解決大問(wèn)題的時(shí)候,也只能是從其中一個(gè)部分開始工作。

????? 看待大問(wèn)題最好的方式,就是將它分解為很多獨(dú)立的小功能。可以獨(dú)立的解決這些小功能,并且在它上面應(yīng)用你學(xué)到的知識(shí)。

????? 你已經(jīng)知道的一些知識(shí)

????? 在前面你已經(jīng)學(xué)到了很多的知識(shí),都可以用來(lái)幫助你解決大問(wèn)題,只是你可能還沒(méi)有意識(shí)到。下面列出一些已經(jīng)學(xué)到的知識(shí)。

  • ????? 通過(guò)封裝變化,是的你的應(yīng)用更加靈活,更加容易適應(yīng)變化。
  • ????? 針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程,是你的軟件更容易擴(kuò)展。
  • ????? 獲取需求的最好辦法是系統(tǒng)需要實(shí)現(xiàn)什么。
  • ????? 分析幫助你確保你的系統(tǒng)可以工作在一個(gè)真實(shí)的環(huán)境。
  • ????? 偉大的軟件應(yīng)該是容易修改和擴(kuò)展的,是做了用戶想要做的事情。

????? 下面就讓我們來(lái)解決大問(wèn)題吧。先看一個(gè)問(wèn)題的描述。

  

Gary Games

——場(chǎng)景描述?

?  游戲提供一個(gè)框架,通過(guò)框架,游戲設(shè)計(jì)者可以創(chuàng)建一個(gè)回合戰(zhàn)略型游戲。沒(méi)有兇殺的場(chǎng)景,游戲利用聽覺(jué)和視覺(jué)吸引玩游戲的人,我們的游戲突出戰(zhàn)略和戰(zhàn)術(shù)的技術(shù)細(xì)節(jié)。
????? requirements和use case是一個(gè)不錯(cuò)的開始,通過(guò)這些你可以想象出系統(tǒng)的樣子,讓后一點(diǎn)一點(diǎn)的增加功能,通過(guò)解決一個(gè)一個(gè)的小問(wèn)題,然后來(lái)解決大問(wèn)題。

  但是我們知道的內(nèi)容足夠進(jìn)行下面的工作了嗎?好像不太夠,Gary到底是一個(gè)什么樣子的平臺(tái)呢?誰(shuí)是最終的消費(fèi)者呢?是游戲者還是游戲設(shè)計(jì)者?游戲都是歷史背景題材的嗎?是否需要支持激光和空間飛船呢?如果要寫一個(gè)好的需求,我們還需要知道更多的內(nèi)容。

  我們需要先弄清楚兩個(gè)事情。

  •   系統(tǒng)像什么?
  •   系統(tǒng)不像什么?

  我們還需要傾聽一下客戶關(guān)于這個(gè)游戲更加細(xì)節(jié)的討論。

?

  通過(guò)用戶的需求描述,可以得出功能列表。

  什么是一個(gè)功能呢?一個(gè)功能就是對(duì)于系統(tǒng)需要做的一件事的高級(jí)別的描述。通常你通過(guò)和客戶聊天,或者是傾聽客戶的描述來(lái)獲取功能。

  通過(guò)用戶描述的功能,轉(zhuǎn)化為需求的描述。還記得我前面說(shuō)的嗎,用戶很多時(shí)候也不清楚他們的需求什么,或者說(shuō)他們說(shuō)不清楚需求是什么。需要我們?nèi)ネ诰?#xff0c;但是用戶會(huì)說(shuō)他需要一個(gè)功能。根據(jù)這個(gè)功能我們把它變成需求描述,然后和客戶一起確認(rèn)需求。

  需求也有兩種,一種是給用戶的,作為甲乙雙方的確認(rèn)文件。一種是給內(nèi)部用的,主要給開發(fā)人員,用來(lái)控制開發(fā)邊界的,同時(shí)對(duì)開發(fā)人員有一個(gè)方向性的指導(dǎo)作用,不至于蔓延的沒(méi)有邊界了或者是沒(méi)有開發(fā)的的方向。通常第二種需求是由架構(gòu)設(shè)計(jì)人員整理的。

  例如:客戶說(shuō)想在游戲中支持不同的地形。

  我們就會(huì)分析

  •   一個(gè)文件關(guān)聯(lián)一個(gè)地形
  •   游戲設(shè)計(jì)者可以創(chuàng)建自定義的地形
  •   每個(gè)地形的特征,會(huì)影響在上面的單位的移動(dòng)

  也就是一個(gè)功能會(huì)導(dǎo)致多個(gè)需求。

  我們已經(jīng)拿到了功能描述,是不是就可以開始寫use case了呢?

  不是的,用例不會(huì)幫助你從大局上看系統(tǒng)。當(dāng)你進(jìn)行真實(shí)開發(fā)的時(shí)候,盡量推遲細(xì)節(jié)的實(shí)現(xiàn)。你仍然需要知道系統(tǒng)需要做什么,從全局上,系統(tǒng)需要做什么?

  這時(shí)候我們需要用例圖來(lái)輔助確定系統(tǒng)需要做什么,而不是對(duì)于細(xì)節(jié)的use case描述。

  上面就是一張用例圖,也就是系統(tǒng)的一個(gè)藍(lán)圖。

? 結(jié)論

?????

????? 解決大問(wèn)題

?

????? 1、傾聽客戶的描述,并且想象出他們想要你構(gòu)建的系統(tǒng)是什么樣子的。

????? 2、以一種用戶可以理解的語(yǔ)言列出一個(gè)功能單。

????? 3、確保你的功能是用戶想要的。

????? 4、使用use case圖來(lái)展示系統(tǒng)的藍(lán)圖

????? 5、將大系統(tǒng)分解為許多的小部分

????? 6、在這些小部分上應(yīng)用設(shè)計(jì)模式

????? 7、在這些小部分上應(yīng)用基本的OOA&D原則

?????

????? OO原則

?

????? 1、封裝變化

????? 2、針對(duì)接口編程,而不針對(duì)實(shí)現(xiàn)編程

????? 3、每個(gè)類應(yīng)該只有一個(gè)導(dǎo)致它變化的原因

????? 4、類是功能和行為的集合

轉(zhuǎn)載于:https://www.cnblogs.com/virusswb/archive/2010/07/27/Head-First-Object-Oriented-Design-and-Analysis-7.html

總結(jié)

以上是生活随笔為你收集整理的Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(七)...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。