青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Codejie's C++ Space

Using C++

隨筆:對(duì)象思想 VS. 過(guò)程思想


??? 下面是昨天和同事討論一個(gè)函數(shù)了的實(shí)現(xiàn)時(shí)的對(duì)話。(為了簡(jiǎn)化,減去了其中我由于‘著急上火’而導(dǎo)致‘高音’部分的言語(yǔ)...)?
??
??? C(同事):現(xiàn)在需要由你提供一個(gè)Sample()函數(shù)。
??? J(我):OK,功能是否是為了完成必要的數(shù)據(jù)采集工作?
??? C: 是的,最終數(shù)據(jù)要放到文件中。?
??? J: 放到文件中?那是當(dāng)然。但你的意思是整個(gè)Sample()都要我這邊的代碼實(shí)現(xiàn)嗎?
??? C: 當(dāng)然,你應(yīng)該會(huì)寫(xiě)文件吧??
??? J: 等等,不是會(huì)不會(huì)寫(xiě)的問(wèn)題,而是文件要我來(lái)寫(xiě)嗎?現(xiàn)在的分工上是否是我負(fù)責(zé)數(shù)據(jù)處理,你完成流程調(diào)度?
??? C: 有什么數(shù)據(jù)、流程之分嗎,我們寫(xiě)的是一個(gè)程序啊。如果你非要區(qū)分一下,那應(yīng)該是這樣的。
??? J: 那你看文件存儲(chǔ)和數(shù)據(jù)處理有什么關(guān)系嗎?
??? C: 數(shù)據(jù)最終不是要放到文件中嗎?你數(shù)據(jù)獲取后,保存到文件中,這有什么不對(duì)嗎?
??? J: 你沒(méi)有發(fā)現(xiàn)有什么沒(méi)考慮的問(wèn)題嗎?像是要保存的文件名稱(chēng)我這邊怎么知道?具體數(shù)據(jù)該如何存儲(chǔ)?
??? C: 文件名稱(chēng)在調(diào)用是我會(huì)傳給你的,需要什么都會(huì)傳給你的了;至于存儲(chǔ),按照現(xiàn)在的規(guī)范,字符串格式!
??? J: 都傳過(guò)來(lái)?你確信以后不會(huì)被改成二進(jìn)制方式存儲(chǔ)嗎?好吧,先說(shuō)說(shuō)你想Sample()該如何實(shí)現(xiàn)吧?
??? C: 不用考慮二進(jìn)制了,再說(shuō)如果改了,我們到時(shí)跟著改就是了。好,你看,我想應(yīng)該這樣做,先Open個(gè)文件,然后獲取數(shù)據(jù)的結(jié)果,變成字符串保存到文件中,然后Cose。很清晰的過(guò)程,是吧??
????int?Sample()
????
{
????????OpenFile();
????????
????????str?
=?GetResult();
????????Save(str);
????????
????????CloseFile();????????
????}

??? J: OK, 你看這些代碼跟我現(xiàn)在實(shí)現(xiàn)的數(shù)據(jù)部分有多少關(guān)系?而且我們的‘?dāng)?shù)據(jù)’的Result并不都是string類(lèi)型,而且已經(jīng)為不同的Result都定義了相應(yīng)類(lèi)型了,難道這里你要GetResult都轉(zhuǎn)換為string嗎?要是那天存儲(chǔ)改為二進(jìn)制了,我們來(lái)改GetResult()嗎?而且這個(gè)Save()接口參數(shù)也要改,是吧?
??? C: 如果需要改,我們跟著改就是了,這不是問(wèn)題。
??? J: 是的,改不是問(wèn)題,但改多改少,和改動(dòng)的影響的大小應(yīng)該是問(wèn)題吧?最主要的一個(gè)問(wèn)題是,這樣的過(guò)程將數(shù)據(jù)和存儲(chǔ)緊緊耦合在一起了。這種做法對(duì)于分解工作很不利的。
??? C: 我并沒(méi)有覺(jué)得有什么不妥,你打算如何做?
??? J: 首選我們看一下,你需要的是File,Result(數(shù)據(jù))和Save三個(gè)部分代碼,是吧?我們能看出Result是數(shù)據(jù)部分的操作,而File,Save兩部分是流程上的操作,把這樣的代碼都加到‘?dāng)?shù)據(jù)’部分去,是不是有些亂?要不把GetResult()加到‘流程’部分?
??? J: 其次,簡(jiǎn)單地舉個(gè)列子說(shuō),如果有需求要我們獲得Result后,不保存到文件,而只是顯示在屏幕上,那么對(duì)于這種需要,我們要再寫(xiě)個(gè)GetResult()函數(shù)吧?
??? J: 你看,如果涉及Sample()的修改,我們需要修改的地方涉及太多功能塊了。所以根據(jù)功能的不同,分離這些函數(shù)是必要的。Sample()不應(yīng)該能過(guò)作為一個(gè)‘原子’操作,提供出去,應(yīng)該把它分解開(kāi)。 在分解功能時(shí),或者設(shè)計(jì)函數(shù)時(shí),應(yīng)該是功能該是什么樣子的,就按照什么樣子去做,做自己能做的和該做的,而不是為了問(wèn)了迎合另一個(gè)功能的需求而改變自己;功能間的連接我們可以通過(guò)傳遞結(jié)果或者添加‘適配器’等等方法。
????int?Sample()
????
{
????????Result?
=?GetResult();
????????
????????ResultProc(Result);????
????}

????
????
int?ResultProc(filename,?result)
????
{
????????str?
=?ResultToStr(result);
????????OpenFile(filename);
????????Save(str);
????????CloseFile();
????}

??? J: 因此,look,Sample()不是我們需要的,我們需要的是GetResult()和ResuoltToStr(), 而Sample()只是對(duì)它們的再封裝而已。如果發(fā)生前面說(shuō)到的更改需求,GetResult()就不用動(dòng)了。所以,數(shù)據(jù)處理是我這邊要做的,而寫(xiě)文件。。。。是吧?


<----- 吐血的分割線 ---->
?
??? C: 寫(xiě)到了再說(shuō)。。。

posted on 2009-11-27 16:27 codejie 閱讀(188) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): 隨筆而已

評(píng)論

# re: 隨筆:對(duì)象思想 VS. 過(guò)程思想 2009-11-27 17:37 OwnWaterloo

感覺(jué)…… 有點(diǎn)文不對(duì)題……
文中的重點(diǎn)在于一個(gè)函數(shù)應(yīng)該只完成一件事情。
這"一件事情"如何定義…… 可能把它說(shuō)成"一個(gè)需求"更恰當(dāng)。

一個(gè)函數(shù)應(yīng)該只實(shí)現(xiàn)一個(gè)需求,這個(gè)需求一個(gè)整體的,要么不變,要么整體改變,不會(huì)只變一部分。
目的還是在于能更好的應(yīng)對(duì)需求變化。


這跟"過(guò)程" vs "對(duì)象"沒(méi)什么關(guān)系吧?

  回復(fù)  更多評(píng)論   

# re: 隨筆:對(duì)象思想 VS. 過(guò)程思想[未登錄](méi) 2009-11-28 17:52 codejie

@OwnWaterloo
恩,說(shuō)的不錯(cuò),只是起這個(gè)標(biāo)題是有些背景的。。。
前些時(shí)候,本來(lái)由于工作環(huán)境中碰到的一些事情,我想寫(xiě)個(gè)系列東東,叫做“如何設(shè)計(jì)”,后來(lái)想想自己還沒(méi)有到那么高的水平,告訴別人該如何做設(shè)計(jì),也就沒(méi)有去寫(xiě)。后來(lái)的這個(gè)跟同事的討論,讓我很“上火”,覺(jué)得做設(shè)計(jì)和做一件工藝品一樣,是一件技術(shù)和藝術(shù)相結(jié)合的工作,怎么能“湊合”呢?這種思想讓我很“氣憤”啊。。。
“過(guò)程”和“對(duì)象”本身沒(méi)有可比性,兩者都只是設(shè)計(jì)的手段,也都能作出好的設(shè)計(jì),名字來(lái)由只是同事說(shuō)我是C++的,而C的設(shè)計(jì)是沒(méi)有對(duì)象的,都是過(guò)程的(這個(gè)思想就很“怪異”),所以才有這要的標(biāo)題。當(dāng)然設(shè)計(jì)和語(yǔ)言是沒(méi)有關(guān)系的,這里只是“引用”了一下。。。
  回復(fù)  更多評(píng)論   

公告

Using C++

導(dǎo)航

統(tǒng)計(jì)

留言簿(73)

隨筆分類(lèi)(513)

積分與排名

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美一区二区在线看| 欧美电影在线播放| 欧美电影在线观看完整版| 欧美伊人久久| 久久精品国产免费| 免费成年人欧美视频| 欧美国产精品| 99视频+国产日韩欧美| 亚洲欧美激情四射在线日| 性欧美办公室18xxxxhd| 巨乳诱惑日韩免费av| 国产一区二区在线免费观看 | 免费在线成人| 亚洲第一在线综合在线| 亚洲国产一区二区精品专区| 一区二区三区欧美| 久久久久久久91| 欧美日韩直播| 怡红院精品视频| 亚洲午夜激情| 蜜月aⅴ免费一区二区三区| 亚洲乱码国产乱码精品精98午夜 | 亚洲区国产区| 香蕉成人伊视频在线观看| 美女精品视频一区| 日韩一区二区福利| 久久亚洲欧美国产精品乐播| 国产精品ⅴa在线观看h| 亚洲高清免费| 久久国产一区| 夜夜爽99久久国产综合精品女不卡| 欧美一区二区三区日韩视频| 欧美日韩在线不卡一区| 在线观看欧美黄色| 亚洲欧美日韩精品久久久| 亚洲国产va精品久久久不卡综合| 亚洲欧美高清| 欧美视频日韩视频| 亚洲精品看片| 另类av导航| 欧美一区三区三区高中清蜜桃| 欧美日韩成人在线| 亚洲三级视频在线观看| 女生裸体视频一区二区三区| 篠田优中文在线播放第一区| 国产精品家庭影院| 亚洲午夜精品福利| 亚洲免费av电影| 欧美精品亚洲精品| 亚洲美女精品久久| 亚洲国产精品久久精品怡红院| 久久国产精品电影| 国产一区深夜福利| 久久久人成影片一区二区三区| 亚洲一区一卡| 国产欧美精品日韩精品| 欧美一区二区三区播放老司机| 亚洲午夜在线观看视频在线| 国产精品xvideos88| 在线视频日韩精品| 一区二区激情视频| 国产精品二区影院| 午夜在线精品偷拍| 先锋影音网一区二区| 午夜精品福利一区二区三区av | 久久久久久网站| 国产亚洲福利| 久久久久免费| 久久美女性网| 亚洲国产欧美日韩精品| 欧美成人高清| 欧美第十八页| 亚洲一区二区少妇| 亚洲免费视频观看| 国内精品一区二区三区| 免费观看久久久4p| 欧美精品一卡| 亚洲欧美日韩视频二区| 性欧美大战久久久久久久免费观看| 国产日韩欧美精品一区| 久久综合色天天久久综合图片| 久久亚洲不卡| 亚洲视频一区| 久久高清国产| 一区二区激情视频| 欧美一区二区三区在线看| 在线看日韩欧美| 日韩视频永久免费观看| 国产欧美日韩一区| 亚洲高清免费视频| 国产精品草草| 免费人成网站在线观看欧美高清| 欧美精品日韩三级| 久久久国产精品亚洲一区| 免费成人在线观看视频| 亚洲男女自偷自拍图片另类| 久久久人成影片一区二区三区| 99re亚洲国产精品| 欧美一区二视频| 一本色道久久综合狠狠躁篇怎么玩| 亚洲一级黄色av| 亚洲激情成人| 欧美在线观看www| 一区二区三区www| 久久免费一区| 欧美在线视频观看| 欧美日韩一区二区三区在线观看免 | 亚洲国产精品美女| 国产精品欧美一区二区三区奶水| 免费久久99精品国产| 国产乱肥老妇国产一区二| 亚洲日本中文字幕| 在线精品国精品国产尤物884a| 亚洲欧美久久| 亚洲一级高清| 欧美理论在线播放| 欧美激情欧美激情在线五月| 国产午夜精品美女视频明星a级| 亚洲三级影院| 亚洲欧洲另类| 久久久视频精品| 久久一区视频| 国产亚洲欧美一区在线观看| 亚洲一区二区精品在线观看| 亚洲国产高清aⅴ视频| 国产日韩欧美二区| 亚洲中午字幕| 午夜亚洲伦理| 国产精品久久久久久久久| 91久久精品一区二区三区| 亚洲国产精品视频一区| 久久先锋影音| 欧美11—12娇小xxxx| 亚洲成色777777女色窝| 久久精品视频免费| 久久久一二三| 精品动漫av| 美玉足脚交一区二区三区图片| 免费精品99久久国产综合精品| 激情成人av在线| 久久亚洲精品一区二区| 欧美国产精品va在线观看| 亚洲精品久久久蜜桃| 欧美精品在线免费观看| 日韩午夜电影| 午夜精品福利一区二区三区av| 欧美午夜激情在线| 亚洲欧美国产77777| 久久精品国产999大香线蕉| 韩国精品久久久999| 免费成人高清| 制服丝袜亚洲播放| 久久久99精品免费观看不卡| 亚洲第一主播视频| 欧美日韩精品一区二区| 亚洲免费综合| 免费成人黄色片| 中文在线资源观看网站视频免费不卡| 欧美亚州韩日在线看免费版国语版| 亚洲一区二区三区欧美| 久久久久久欧美| 亚洲精品在线视频| 国产精品日韩久久久| 久久精品成人一区二区三区| 亚洲高清二区| 欧美制服第一页| 亚洲乱码精品一二三四区日韩在线| 国产精品chinese| 久久婷婷麻豆| 亚洲视频一区在线观看| 久久人人爽人人爽| 亚洲婷婷在线| 亚洲国产精品久久91精品| 国产精品久久亚洲7777| 久久伊人亚洲| 亚洲一区二区三区四区在线观看 | 久久精品国产视频| 亚洲精品自在在线观看| 久久久久久国产精品一区| 99综合电影在线视频| 激情成人av在线| 国产精品免费视频xxxx | 在线成人免费观看| 国产精品白丝av嫩草影院| 久久综合九色九九| 午夜一级在线看亚洲| 一二三区精品| 亚洲国内精品| 欧美jjzz| 久久久免费精品视频| 欧美一级免费视频| 亚洲小说春色综合另类电影| 欧美国产第二页| 亚洲国产成人一区| 国产日韩久久| 国产精品播放| 欧美日韩国产小视频| 蜜桃av综合| 久热爱精品视频线路一| 欧美在线视频一区二区|