• <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>

            DJ's c++ blog

            c++學(xué)習(xí)歷程

            常用鏈接

            統(tǒng)計(jì)

            最新評論

            2009年10月14日 #

            啃書筆記:設(shè)計(jì)模式

            最近在啃的書,都是大部頭,不方便隨身攜帶.于是,就在包里丟了本<設(shè)計(jì)模式解析>,以便平時(shí)沒事干的時(shí)候看.

            可是由于看了的很多東西都不能立刻投入到實(shí)用中,久而久之就很容易忘記.(effective那兩本就是這樣).

            于是就想在讀書的同時(shí)寫寫一些關(guān)鍵點(diǎn)以及理解,權(quán)當(dāng)加深記憶,還有鍛煉表達(dá)能力.

            這個(gè)坑就獻(xiàn)給<設(shè)計(jì)模式解析>,<設(shè)計(jì)模式>這兩書吧.前者是聽到網(wǎng)上評論說不錯(cuò),讀了再讀<設(shè)計(jì)模式>會(huì)理解的更好,于是就入了.現(xiàn)在在讀.

            由于這是剛看剛寫,如果有不正確的,希望賜教,見笑啦.
            ======================================================================

            內(nèi)聚性指的是類內(nèi)部組成部分之間相互聯(lián)系的緊密程度
            耦合性指的是一個(gè)類與其它類之間聯(lián)系的緊密程度

            封裝變化
            用類的聚合代替繼承

            Facade

            "為子系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一的接口.Facade模式定義了一個(gè)更高層的接口,使子系統(tǒng)更加容易使用"

            Facade模式是提供一個(gè)新的,更加簡單以及符合實(shí)用的接口,來使用一個(gè)復(fù)雜系統(tǒng)的子集.
            我寫的那個(gè)俄羅斯方塊中的Console類,貌似就是符合Facade模式的,需要用的控制臺(tái)API(占總數(shù)的一小部分)封裝到Consol類中,使得控制方塊的顯示改變更加容易.


            Adapter

            "將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口.Adapter模式使原本由于接口不兼容而不能一起工作的類可以一起工作."

            1.例如抽象類有接口int foo(int a,int b,bool c),其派生類A中的foo函數(shù)已經(jīng)由另外一個(gè)函數(shù)實(shí)現(xiàn),但是函數(shù)foo2只需要兩個(gè)參數(shù),則可以如下復(fù)用代碼.
            int foo(int a,int b,bool c)
            {
               return foo2(a,b);
            }

            2.如果虛基類Shape有多個(gè)派生類,如Point,Square,Circle等.但是其中一個(gè)派生類已有相似實(shí)現(xiàn),如ShapeCircle,但是ShapeCircle的接口又與Shape不一致.則可在Circle中包含一個(gè)類型為ShapeCircle的數(shù)據(jù)成員,并在接口的實(shí)現(xiàn)中運(yùn)用1,以此復(fù)用代碼.


            Strategy

            "定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可相互替換.Strategy模式使算法可獨(dú)立于使用它的客戶而變化."

            (話說,這句話真是看的人云里霧里的...)

            一個(gè)類A中,擁有許多的成員函數(shù),這些函數(shù)都需要根據(jù)一些狀態(tài)進(jìn)行不同操作.如果將A當(dāng)作基類直接寫相應(yīng)狀態(tài)的派生類時(shí),隨著狀態(tài)的復(fù)雜程度增加,則會(huì)導(dǎo)致繼承層次過大,特化版本過多.
            Strategy模式則是將類A中的函數(shù)封裝成虛基類,然后通過繼承A中的類成員以應(yīng)對不同的狀態(tài).


            Bridge

            "將抽象與其實(shí)現(xiàn)解耦,使它們都可以獨(dú)立地變化."

            一個(gè)類A需要調(diào)用不同的實(shí)現(xiàn)做不同的事情,如果用繼承去解決(用某種實(shí)現(xiàn)實(shí)現(xiàn)某種事情則為1個(gè)派生類),隨著不同的實(shí)現(xiàn)(m)和不同的事情(n)的數(shù)量增長,會(huì)造成派生類數(shù)量的爆炸性增長(m*n).Bridge模式是把實(shí)現(xiàn)抽象,然后在A中持有實(shí)現(xiàn)的句柄,再通過動(dòng)態(tài)創(chuàng)建做事情(m+n).


            Abstract Factor

            "為創(chuàng)建一組相關(guān)或相互依賴的對象提供一個(gè)接口,而且無需指定它們的具體類."

            @_@ 這個(gè)覺得定義的挺明確的,剛看完,還沒怎么思考過,有空再補(bǔ)寫...

            to be continue...

            posted @ 2009-10-14 20:54 DJ 閱讀(296) | 評論 (0)編輯 收藏

            2009年9月14日 #

            五子棋 靜態(tài)AI版

            點(diǎn)我下載

            源碼亂的很,沒注釋,就不放上來了.

            開學(xué)的時(shí)候,每次復(fù)習(xí)數(shù)分就覺得惡心,一惡心就想編程,于是2天弄出了這個(gè),再加上幾天的殺蟲和微調(diào)(弄那么久是因?yàn)槲也粫?huì)玩五子棋..)

            本來都不敢拿出來獻(xiàn)丑.后面想,反正這個(gè)blog就是要來擺自己的編程歷程中的東西的嘛,也就弄上來了.

            基于靜態(tài)判斷,如上所說,我不會(huì)玩五子棋,甚至是打敗現(xiàn)在這個(gè)版本都要費(fèi)點(diǎn)時(shí)間.所以這判斷可能會(huì)有不合理的地方,如果有心人玩過后給與指點(diǎn),則非常感謝.

            之前設(shè)想的進(jìn)階AI實(shí)現(xiàn)方法,查閱一些基本資料過后,才知道叫作極大極小值算法&剪枝優(yōu)化.沒看任何詳細(xì)資料自己實(shí)現(xiàn)..應(yīng)該得花點(diǎn)時(shí)間.可惜偏偏這段時(shí)間要較忙,要割舍編程時(shí)間給別的方面,所以沒那么快能完工.

            posted @ 2009-09-14 23:42 DJ 閱讀(277) | 評論 (0)編輯 收藏

            2009年8月18日 #

            俄羅斯方塊

            控制臺(tái)下的俄羅斯方塊.

            exe/Files/scut-dj/TetrisOnConsole.rar
            代碼/Files/scut-dj/TetrisCode.rar
            //edit 090917 自己暑假燒餅 把簡單問題復(fù)雜化了 所以消行出現(xiàn)了bug..


            因?yàn)樵谏蠈W(xué)期末,有幾個(gè)同學(xué)來找我說寫一個(gè)MFC下的俄羅斯方塊,因?yàn)榭紤]到自己對于MFC不是很熟,想順便學(xué)學(xué)MFC,就答應(yīng)了.
            本來打算回到家后就寫一個(gè)在控制臺(tái)可以運(yùn)行的出來,結(jié)果一回到家就開始學(xué)車,每天都蒸到傻,就沒有寫了...

            然后最近眼看要開學(xué)了,不寫不行了..于是就開始寫了,前兩天寫了一個(gè)初始版本,沒有調(diào)用Windows的console的API,只用刷屏(cls)的方式來下落的..看的我那個(gè)眼瞎啊...后面得知有函數(shù)可以弄的,就看鳥語版的MSDN看了一下午,弄清楚了,開始改造..今天終于完工.

            前面說了要寫MFC的,為啥寫了個(gè)控制臺(tái)的呢?那是因?yàn)槲覜]有看多少M(fèi)FC啊....怨念...
            7月就斷斷續(xù)續(xù)的看完了編程珠璣,后面的習(xí)題都沒做多少,8月終于過了樁考之后時(shí)間才充裕了,開始看<算法導(dǎo)論>,然后再實(shí)現(xiàn)了些算法,寫了個(gè)鏈表類什么的.就到了今天了.時(shí)間過的真快..悲劇啊.

            繼續(xù)努力..

            posted @ 2009-08-18 15:22 DJ 閱讀(600) | 評論 (3)編輯 收藏

            2009年6月18日 #

            09.06.18-最近&暑假計(jì)劃

            說來慚愧,之前給自己訂下的一堆目標(biāo),并沒有實(shí)現(xiàn)多少個(gè).

            一個(gè)月前說過自己的效率低整天浪費(fèi)時(shí)間...結(jié)果一個(gè)月后看回來,做的到的時(shí)間也就是10天.

            沒什么成果,這個(gè)月其實(shí)只花了5天左右編東西,其余時(shí)間也只是在看書然后寫些小東西實(shí)踐實(shí)踐而已.

            編的那東西其實(shí)就是c++的大作業(yè),MFC寫的計(jì)算器.

            內(nèi)核我寫的,界面舍友弄的,我改了微小部分.





            ==================================================================

            本來自己不好意思把計(jì)劃寫出來的,怕在這高手如云的地方遭到嘲笑.

            可是現(xiàn)在想想如果寫出來反而能激勵(lì)自己去完成吧?

            1.暑假打算看<編程珠璣I&II>&<算法導(dǎo)論>&<算法引論>&<設(shè)計(jì)模式解析>&<MFC Windows 程序設(shè)計(jì)>

            我不知道看什么書..我手頭上有這些書就先看著了.算法導(dǎo)論和MFC那本都是大部頭,不過MFC我已經(jīng)看過一些了.算法導(dǎo)論估計(jì)看不完,看一部分吧.

            2.程序的話打算按照何詠師兄的建議去實(shí)現(xiàn)一些STL的功能(auto_ptr,string,vector等,當(dāng)然應(yīng)該比較粗糙),實(shí)在慚愧,現(xiàn)在才來做.

            還有試著用MFC完成一個(gè)賬本.為什么要做這個(gè)奇怪的東西呢?應(yīng)為記得以前跟我女朋友說過一年之內(nèi)要做一個(gè)給她用.很不幸,我食言了.

            3.調(diào)整生物鐘,盡量在1點(diǎn)前睡覺!

            所以,要努力啦!

            ===================================================================

            當(dāng)然,現(xiàn)在主要還是要忙著期末考,加油啦!

            posted @ 2009-06-18 16:30 DJ 閱讀(290) | 評論 (0)編輯 收藏

            2009年5月11日 #

            09.05.11-最近

            最近似乎都沒有怎樣的好好編程和看書,五一回家的那3天就看了看<影響力>.
            然后回來的勞動(dòng)周過的更是渾渾噩噩.老被一些七零八亂的事情把時(shí)間打斷.
            我總是習(xí)慣一下子拿出連續(xù)的5.6小時(shí)來看書或者編程,那樣子看一個(gè)小時(shí)書然后去弄點(diǎn)別的事情然后又回來繼續(xù)看對我來說真是困難.

            慚愧,最近幾乎沒有編程.
            就是之前把自己寫的長整數(shù)高精度運(yùn)算和四則運(yùn)算表達(dá)式整合在一起了,應(yīng)該是耦合度沒那么高,稍微改2行代碼就弄在一起了,然后解決了幾個(gè)bug之后就沒再弄了.
            用還用的了,只是效率不佳,1/3保留1000位小數(shù)要算個(gè)幾秒...然后設(shè)計(jì)的也惡心吧.又是類又是函數(shù)的,亂七八糟,哪天再來大改一次吧.

            因?yàn)橐獞?yīng)付c++的大作業(yè),所以現(xiàn)在在看<深入淺出MFC>.我沒有半點(diǎn)windows編程經(jīng)驗(yàn)..頭暈?zāi)X脹的看了350多頁,也只是有個(gè)模模糊糊的概念.

            更糟糕的是沒有動(dòng)手實(shí)踐.這樣真的會(huì)變成看了和沒看一樣.

            哎.感覺這段時(shí)間實(shí)在是荒廢.都沒有做些什么東西.那天何詠師兄來詢問都感覺極其不好意思了..

            努力努力.

            爭取這個(gè)月能把書過一遍,自己動(dòng)手做些MFC的東西,然后再重看一次講MFC框架的部分.

            然后下個(gè)月就看看寫寫STL的東西啦.

            posted @ 2009-05-11 14:22 DJ 閱讀(309) | 評論 (1)編輯 收藏

            2009年4月20日 #

            四則運(yùn)算語法分析

            /Files/scut-dj/parsing.rar



            剛寫好,也沒有改啥了,只支持整數(shù)不支持小數(shù),然后頭文件組織的也很惡心..
            類設(shè)計(jì)的也差..沒有封裝數(shù)據(jù)..

            我是看了何詠師兄的文章才寫的出來的..http://www.graphixer.com.cn/ShowWorks.asp?Type=1&ID=98

            詞法分析是自己寫的..語法分析自己寫了發(fā)現(xiàn)有些bug,然后再參考一下..弄下弄下變得和教程上一樣..罪過罪過..
            水平很有限啊.

            posted @ 2009-04-20 22:49 DJ 閱讀(774) | 評論 (2)編輯 收藏

            =v= 開博客啦.

            水平很菜.

            本來是把自己寫的一些弱智程序的c++代碼丟到QQ空間上面去的.

            后面發(fā)現(xiàn)不是很合適,和平時(shí)一些牢騷堆在一起,顯得比較奇怪.


            于是開始專門開blog吧.

            我還屬于菜鳥..所以目前是肯定不可能有啥有意義的內(nèi)容的了.

            就寫寫平時(shí)的學(xué)習(xí)歷程咯.


            =================================================================

            最近與牛逼的何詠師兄取得聯(lián)系,然后問了一些現(xiàn)在該怎么學(xué)習(xí)和提高自己能力的方法.

            然后他就建議我先做一個(gè)四則運(yùn)算的語法分析器,然后寫一些自己的庫,例如string,vector,list什么的..

            所以最近就在研究四則運(yùn)算的語法分析咯.

            因?yàn)橹安恢涝~法分析結(jié)果的數(shù)據(jù)結(jié)構(gòu)是怎樣的,于是在看懂了那篇教程后,雖然明白了原理,可是在實(shí)現(xiàn)上卻遇到很多困難.

            然后參加了何詠師兄開的一個(gè)SIG后才恍然大悟..

            不過后面幾天又沒時(shí)間了,所以做出了一個(gè)詞法分析就沒有繼續(xù)了.今晚就來嘗試下實(shí)現(xiàn)咯

            不過寫到一半?yún)s發(fā)現(xiàn)自己理解的可能還不夠透徹,總要看一下教程才寫的下去,不然總是腦子里面有構(gòu)想?yún)s實(shí)現(xiàn)不了的感覺..

            然后這樣的后果就是寫出來的東西基本和教程上一樣.......

            哎.

            然后在SIG上也看到大名鼎鼎的vczh 陳梓翰師兄..不過沒有交流過..太敬畏了于是當(dāng)神膜拜..失策失策..

            ===================================================================

            然后星期六去聽了那個(gè)軟件設(shè)計(jì)的講座...

            第一個(gè)師兄實(shí)在讓人郁悶...用一種半夜電臺(tái)情感節(jié)目主播的腔調(diào)來講東西..然后又煩,整天來反問,設(shè)問..節(jié)奏之慢內(nèi)容之無聊(對我來說)讓人昏昏欲睡..

            然后第二個(gè)個(gè)師兄講的東西基本上可以用一句話概括."請到圖書館借閱<解析極限編程---擁抱變化>"

            第三個(gè)就是何詠師兄啦.他主要講了自己對于技術(shù)的一類看法.其實(shí)我是很贊同的.~

            所以.自己也要努力啦!

            posted @ 2009-04-20 19:15 DJ 閱讀(454) | 評論 (6)編輯 收藏

            僅列出標(biāo)題  
            亚洲香蕉网久久综合影视| 久久精品国产亚洲AV忘忧草18| 国产亚洲婷婷香蕉久久精品 | 欧美久久一区二区三区| 欧美va久久久噜噜噜久久| 久久99国产综合精品女同| 久久国产乱子精品免费女| 99久久免费国产精品| 亚洲国产视频久久| 日韩精品久久久久久久电影| 欧美一级久久久久久久大| 久久亚洲sm情趣捆绑调教 | 婷婷久久综合九色综合绿巨人| 伊色综合久久之综合久久| 久久久久久夜精品精品免费啦| 国产欧美久久久精品| 一本大道久久香蕉成人网| 1000部精品久久久久久久久| 久久久久女教师免费一区| 国产午夜免费高清久久影院| 久久久久99精品成人片| 久久国产精品无码HDAV| 久久精品女人天堂AV麻| 久久精品天天中文字幕人妻 | 少妇人妻88久久中文字幕| 久久精品亚洲欧美日韩久久| 国产A三级久久精品| 亚洲国产成人久久一区WWW| 国产精品一区二区久久精品| 亚洲第一极品精品无码久久| 一本色道久久综合| 欧美激情精品久久久久久久| 婷婷综合久久狠狠色99h| 久久亚洲国产成人精品性色| 狠狠色综合网站久久久久久久高清 | 久久国产成人亚洲精品影院| 精品久久久久久国产91| 久久久久成人精品无码中文字幕| 久久人妻无码中文字幕| 国产成人综合久久精品红| 亚洲欧洲精品成人久久奇米网|