• <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++學習歷程

            常用鏈接

            統計

            最新評論

            2009年10月14日 #

            啃書筆記:設計模式

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

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

            于是就想在讀書的同時寫寫一些關鍵點以及理解,權當加深記憶,還有鍛煉表達能力.

            這個坑就獻給<設計模式解析>,<設計模式>這兩書吧.前者是聽到網上評論說不錯,讀了再讀<設計模式>會理解的更好,于是就入了.現在在讀.

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

            內聚性指的是類內部組成部分之間相互聯系的緊密程度
            耦合性指的是一個類與其它類之間聯系的緊密程度

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

            Facade

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

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


            Adapter

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

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

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


            Strategy

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

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

            一個類A中,擁有許多的成員函數,這些函數都需要根據一些狀態進行不同操作.如果將A當作基類直接寫相應狀態的派生類時,隨著狀態的復雜程度增加,則會導致繼承層次過大,特化版本過多.
            Strategy模式則是將類A中的函數封裝成虛基類,然后通過繼承A中的類成員以應對不同的狀態.


            Bridge

            "將抽象與其實現解耦,使它們都可以獨立地變化."

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


            Abstract Factor

            "為創建一組相關或相互依賴的對象提供一個接口,而且無需指定它們的具體類."

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

            to be continue...

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

            2009年9月14日 #

            五子棋 靜態AI版

            點我下載

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

            開學的時候,每次復習數分就覺得惡心,一惡心就想編程,于是2天弄出了這個,再加上幾天的殺蟲和微調(弄那么久是因為我不會玩五子棋..)

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

            基于靜態判斷,如上所說,我不會玩五子棋,甚至是打敗現在這個版本都要費點時間.所以這判斷可能會有不合理的地方,如果有心人玩過后給與指點,則非常感謝.

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

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

            2009年8月18日 #

            俄羅斯方塊

            控制臺下的俄羅斯方塊.

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


            因為在上學期末,有幾個同學來找我說寫一個MFC下的俄羅斯方塊,因為考慮到自己對于MFC不是很熟,想順便學學MFC,就答應了.
            本來打算回到家后就寫一個在控制臺可以運行的出來,結果一回到家就開始學車,每天都蒸到傻,就沒有寫了...

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

            前面說了要寫MFC的,為啥寫了個控制臺的呢?那是因為我沒有看多少MFC啊....怨念...
            7月就斷斷續續的看完了編程珠璣,后面的習題都沒做多少,8月終于過了樁考之后時間才充裕了,開始看<算法導論>,然后再實現了些算法,寫了個鏈表類什么的.就到了今天了.時間過的真快..悲劇啊.

            繼續努力..

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

            2009年6月18日 #

            09.06.18-最近&暑假計劃

            說來慚愧,之前給自己訂下的一堆目標,并沒有實現多少個.

            一個月前說過自己的效率低整天浪費時間...結果一個月后看回來,做的到的時間也就是10天.

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

            編的那東西其實就是c++的大作業,MFC寫的計算器.

            內核我寫的,界面舍友弄的,我改了微小部分.





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

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

            可是現在想想如果寫出來反而能激勵自己去完成吧?

            1.暑假打算看<編程珠璣I&II>&<算法導論>&<算法引論>&<設計模式解析>&<MFC Windows 程序設計>

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

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

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

            3.調整生物鐘,盡量在1點前睡覺!

            所以,要努力啦!

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

            當然,現在主要還是要忙著期末考,加油啦!

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

            2009年5月11日 #

            09.05.11-最近

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

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

            因為要應付c++的大作業,所以現在在看<深入淺出MFC>.我沒有半點windows編程經驗..頭暈腦脹的看了350多頁,也只是有個模模糊糊的概念.

            更糟糕的是沒有動手實踐.這樣真的會變成看了和沒看一樣.

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

            努力努力.

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

            然后下個月就看看寫寫STL的東西啦.

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

            2009年4月20日 #

            四則運算語法分析

            /Files/scut-dj/parsing.rar



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

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

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

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

            =v= 開博客啦.

            水平很菜.

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

            后面發現不是很合適,和平時一些牢騷堆在一起,顯得比較奇怪.


            于是開始專門開blog吧.

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

            就寫寫平時的學習歷程咯.


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

            最近與牛逼的何詠師兄取得聯系,然后問了一些現在該怎么學習和提高自己能力的方法.

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

            所以最近就在研究四則運算的語法分析咯.

            因為之前不知道詞法分析結果的數據結構是怎樣的,于是在看懂了那篇教程后,雖然明白了原理,可是在實現上卻遇到很多困難.

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

            不過后面幾天又沒時間了,所以做出了一個詞法分析就沒有繼續了.今晚就來嘗試下實現咯

            不過寫到一半卻發現自己理解的可能還不夠透徹,總要看一下教程才寫的下去,不然總是腦子里面有構想卻實現不了的感覺..

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

            哎.

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

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

            然后星期六去聽了那個軟件設計的講座...

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

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

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

            所以.自己也要努力啦!

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

            僅列出標題  
            欧美久久天天综合香蕉伊| 成人综合久久精品色婷婷| 久久精品人人做人人爽97| 国产精品美女久久久m| 91秦先生久久久久久久| 香蕉aa三级久久毛片| 国产亚洲精久久久久久无码| 久久久久AV综合网成人| 久久91这里精品国产2020| 四虎影视久久久免费观看| 久久久av波多野一区二区| 国产精久久一区二区三区| 亚洲国产另类久久久精品| 国产日韩久久免费影院| 亚洲AV无码1区2区久久| 久久无码AV中文出轨人妻| 99国产精品久久| 久久精品中文字幕大胸| 99久久夜色精品国产网站| 亚洲乱码中文字幕久久孕妇黑人| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 精品熟女少妇av免费久久| 成人精品一区二区久久| 欧美牲交A欧牲交aⅴ久久| 麻豆成人久久精品二区三区免费| 国产成人久久777777| 日韩精品久久无码中文字幕| 亚洲欧美国产精品专区久久| 久久美女人爽女人爽| 一本久久a久久精品亚洲| 久久综合亚洲色一区二区三区| 久久一区二区三区99| 91精品国产91久久久久久青草| 99久久精品国产高清一区二区| 无码精品久久久天天影视| 久久亚洲精品无码aⅴ大香| 久久最新免费视频| 合区精品久久久中文字幕一区| 久久精品无码一区二区app| 久久99精品国产99久久6| 精品久久久久久99人妻|