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

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>
            国产一区二区视频在线观看| 午夜欧美视频| 美日韩在线观看| 在线日韩av片| 欧美成人网在线| 欧美大成色www永久网站婷| 亚洲韩国一区二区三区| 亚洲国产精品尤物yw在线观看| 国产精品视频你懂的| 国产精品成人v| 亚洲欧美日韩爽爽影院| 国产精品美女在线| 欧美亚洲免费电影| 欧美一级片一区| 一区在线电影| 亚洲国产一区二区精品专区| 欧美日韩免费精品| 欧美一区二区三区视频免费播放 | 国产麻豆综合| 久久影音先锋| 欧美精品大片| 久久国内精品视频| 欧美电影免费观看高清完整版| 亚洲午夜高清视频| 久久精品国产免费观看| 亚洲美洲欧洲综合国产一区| 亚洲综合视频在线| 亚洲电影在线| 亚洲一区视频在线| 亚洲精品一区二区三| 宅男噜噜噜66国产日韩在线观看| 国产一区二区| 亚洲免费高清视频| 国外成人性视频| 亚洲视频福利| 亚洲精品国产无天堂网2021| 亚洲欧美在线免费观看| 亚洲乱码国产乱码精品精98午夜| 亚洲欧美另类综合偷拍| 亚洲伦理中文字幕| 欧美综合第一页| 亚洲永久免费av| 欧美国产日韩免费| 久久亚洲春色中文字幕| 欧美性大战xxxxx久久久| 免费不卡在线观看| 国产精品私房写真福利视频| 亚洲人成啪啪网站| 狠狠久久亚洲欧美专区| 亚洲无毛电影| 在线综合亚洲| 麻豆国产精品777777在线| 欧美在线免费| 国产精品私拍pans大尺度在线| 亚洲区在线播放| 亚洲精品1区2区| 久久免费少妇高潮久久精品99| 久久不射电影网| 国产精品久久久久免费a∨| 亚洲三级影片| 一本久久知道综合久久| 欧美成人亚洲| 欧美激情视频免费观看| 136国产福利精品导航| 欧美专区在线| 欧美α欧美αv大片| 伊人久久大香线| 久久久久网站| 欧美黄色免费网站| 亚洲人成网站在线观看播放| 你懂的视频一区二区| 免费人成网站在线观看欧美高清| 亚洲春色另类小说| 久久综合伊人| 在线观看日韩欧美| 一区二区三区高清在线| 一区二区三区av| 欧美午夜寂寞影院| 亚洲女性喷水在线观看一区| 欧美一区日韩一区| 国产在线精品二区| 久久蜜桃香蕉精品一区二区三区| 六月婷婷久久| 亚洲看片免费| 国产精品久久久一本精品| 亚洲一区视频在线| 久久综合色天天久久综合图片| 亚洲电影第1页| 欧美日韩视频专区在线播放| 亚洲一区二区三区四区中文| 久久久亚洲高清| 日韩视频在线免费观看| 国产精品久久久一区二区三区| 亚洲欧美一区二区三区极速播放| 久久亚洲国产精品日日av夜夜| 亚洲人成网站影音先锋播放| 国产精品高精视频免费| 久久久久欧美精品| 亚洲精品三级| 久久婷婷亚洲| 夜夜嗨av色一区二区不卡| 国产精品久久国产三级国电话系列| 欧美一级大片在线观看| 亚洲欧洲日产国产综合网| 亚洲欧美激情精品一区二区| 在线观看成人av电影| 欧美日韩综合在线免费观看| 久久成人在线| 在线亚洲一区二区| 免费在线成人av| 亚洲已满18点击进入久久| 一色屋精品视频在线观看网站| 欧美精品久久一区| 欧美在线播放一区二区| 一本色道久久综合狠狠躁篇怎么玩 | 一本色道精品久久一区二区三区 | 久久久久高清| 亚洲视频网站在线观看| 亚洲电影毛片| 久久综合九色综合欧美狠狠| 亚洲欧美综合国产精品一区| 亚洲精品视频啊美女在线直播| 国产一区香蕉久久| 欧美午夜激情小视频| 欧美精品日韩一区| 久久精品电影| 亚洲欧美日韩视频二区| 一区二区三区产品免费精品久久75 | 9人人澡人人爽人人精品| 在线不卡亚洲| 国内精品久久久久影院色| 国产精品久久久久一区二区三区 | 欧美精品在线免费播放| 蜜桃av综合| 久久女同互慰一区二区三区| 午夜精品视频一区| 亚洲精品国精品久久99热一| 国产女人精品视频| 欧美午夜一区二区三区免费大片| 欧美激情网友自拍| 免费观看成人| 免费精品视频| 欧美高清视频一区二区| 免费不卡在线观看| 免费日韩精品中文字幕视频在线| 久久久最新网址| 久久亚洲一区二区三区四区| 久久亚洲精选| 欧美高清自拍一区| 欧美国产丝袜视频| 欧美激情精品久久久久久黑人| 欧美jizzhd精品欧美巨大免费| 欧美α欧美αv大片| 蜜桃av综合| 欧美日韩在线视频一区| 欧美日韩中文| 国产精一区二区三区| 国产区日韩欧美| 黄色成人在线| 亚洲精品资源美女情侣酒店| 日韩视频免费在线观看| 中文亚洲欧美| 久久国产主播精品| 欧美fxxxxxx另类| 亚洲国产乱码最新视频| 一本高清dvd不卡在线观看| 亚洲一区中文字幕在线观看| 欧美一区二区日韩一区二区| 久久伊人亚洲| 欧美日韩在线观看一区二区| 国产喷白浆一区二区三区| 在线观看日韩www视频免费 | 亚洲狼人精品一区二区三区| 一本色道久久综合狠狠躁篇怎么玩 | 在线免费日韩片| 在线亚洲观看| 久久国产精品第一页| 欧美激情精品| 亚洲永久精品大片| 欧美77777| 国产精品婷婷| 亚洲美女av电影| 欧美一区二区三区播放老司机| 裸体素人女欧美日韩| 日韩午夜av电影| 久久嫩草精品久久久久| 国产精品激情偷乱一区二区∴| 永久91嫩草亚洲精品人人| 一本一本a久久| 免费观看成人| 亚洲永久免费| 欧美日韩高清在线一区| 伊人精品视频| 久久岛国电影| 在线综合亚洲欧美在线视频| 牛牛影视久久网| 娇妻被交换粗又大又硬视频欧美| 欧美在线观看www| 亚洲国产人成综合网站| 日韩香蕉视频|