《大話設計模式》勘誤

來源:互聯網
上載者:User

    儘管已經很仔細的檢查和審核,但錯誤還是沒有能避免。在此向已經購買了本書的讀者誠意地說聲抱歉。現勘誤如下:

    1.01    P2 上方代碼第二行,“if (O == "/") ”,應將"O"改為"B",本頁第二段代碼的倒數第五行,也是相同的錯誤,應將"O"改為"B"。

    1.02    P157 15.9節,第四段,"再添加引用System.configuratio15.",應將"15."改為"n".

    1.03    P61,第8行,原文:“你仔細觀察一下,‘Pursuit(追求者)’和‘SchoolGirl(被追求者)’有沒有相似的地方”?” 改為:“你仔細觀察一下,‘Pursuit(追求者)’和‘Proxy(代理)’有沒有相似的地方”?” 第9行,原文:“...三個方法,只不過‘SchoolGirl(被追求者)’送的禮物是‘Pursuit(追求者)’買的...” 改為:“...三個方法,只不過‘Proxy(代理)’送的禮物是‘Pursuit(追求者)’買的...” (trong  提供)

    1.04    P119,第4行,原文:“具體的小人,具體實現如何畫出小人的頭身手腳各個部分。” 改為:“具體的小人建造者,具體實現如何畫出小人的頭身手腳各個部分。” (trong  提供)

    1.05    P259 圖 圖中Colleague到Mediator之間的連線不應該多一個彙總關係而應該是關聯關係。 (trong  提供)

    1.06    P271中間代碼:原文:"UnsharedConcreteFlyweight uf = new UnsharedConcreteFlyweight();" 改為:"Flyweight uf = new UnsharedConcreteFlyweight(); "將更加準確。(trong  提供)

    1.07    P220 第1行 原文:“大鳥,棒著個手機,玩什麼呢?"  其中“棒”改為:“捧” (cqchi 提供)

    1.08    P347 第5行 "簡單理解就是耦斷絲連" 更改為:"簡單理解就是藕斷絲連" (cqchi 提供)

    1.09    P84 9.5節 第1行 “你現在‘簡曆’對象裡的資料都是string類型的,也就是實值型別....”其中“也就是實值型別”改為“而string是一種擁有實值型別特點的特殊參考型別” (心界使者 提供)

    1.10    P10 在1.10前,增加文字如下“(作者註:以上代碼讀者如果閱讀吃力,說明您對繼承、多態、虛方法、方法重寫等概念的理解不夠,建議先閱讀本書附錄一,理解這些基本概念後再繼續往下閱讀。) ”

    1.11    P359 第4行“所以我們可以應用集合的RemoveRt方法...” 其中“RemoveRt”改為“RemoveAt”(心界使者 提供)

    1.12    P233 第2行:“哈,小菜說的和GoF說的不就是一會事嗎!” 其中“一會事”改為“一回事”(心界使者 提供)

以上為二次重印時已修正的錯誤,以下為重印後發現的錯誤,特公告如下。

    2.01    P86 “用戶端調用代碼”下方代碼第10行與第11行之間,即在“Resume c = (Resume)a.Clone();”與“c.SetWorkExperience("1998-2003", "ZZ企業");”之間加上一行代碼:“c.SetPersonalInfo("男", "24"); ” (鋼琴詩人 提供)

    2.02    P49 倒數第4行,"你的意思是,應該在內部組裝完閉" ,其中“完閉”應該為"完畢" (cqchi 提供)

    2.03    P228 末尾代碼,“class HandsetMP3 : HandSoft ”其中"HandSoft"應改為"HandsetSoft"(鋼琴詩人 提供)

    2.04    P241 中間代碼中的注釋“ // 點菜完閉,通知廚房 ”其中“完閉”應該為"完畢"(鋼琴詩人 提供)

    2.05    P62 本頁三段代碼第一句中 "GiveGift"由於是介面,所以都改為"IGiveGift" (cqchi 提供)

    2.06    P272  最下方代碼開始處 在“//網站工廠”上面增加“using System.Collections; ”,以避免由於應用了Hashtable而使得初學者編譯時間不能通過。(鋼琴詩人 提供)

    2.07    P285 中間代碼第14行,即else語句裡第3行“doubleplayValue”應注意當中有一個空格,即應該是“double playValue” 。 (鋼琴詩人 提供)

    2.08    P286 中間文字“音符類(TerminalExpression)”,其中“音符類”應該為“音階類”(鋼琴詩人 提供)

    2.09    P295 中間,“結果顯示”裡的內容,“男人成功時”、“男人失敗時”和“男人戀愛時”中“男人”改為“Man”,“女人成功時”、“女人失敗時”和“女人戀愛時”中“女人”改為“Woman”

    2.10    P146 第7行與第8行之間,即“……此時如何辦呢?”與“啊,我覺得那要增加好多類……”之間增加下方一段代碼(鋼琴詩人 提供)

 

class Department
{
    private int _id;
    public int ID
    {
        get { return _id; }
        set { _id = value; }
    }

    private string _deptName;
    public string DeptName
    {
        get { return _deptName; }
        set { _deptName = value; }
    }
}

    2.11    P340 倒數第三段中間部分,“set訪問器沒有顯示設定參數”,其中“顯示”應改為“顯式”。(cqchi 提供)
    2.12    P352 中間四段代碼,分別是Cat、Dog、Cattle、Sheep四個類中“public override string getShoutSound() ” ,其中“public”應改為"protected" (beach-boy 提供)

以上為三次重印時已修正的錯誤,以下為重印後發現的錯誤,特公告如下。

    3.01    p52 上方代碼的第四個注釋框中:“本類專屬的方法,以區別於ConcreteDecoratorB”,其中“ConcreteDecoratorB”應改為“ConcreteDecoratorA”。(p大simba 提供)
    3.02    p164 最下邊的注釋框裡:“設定ConcreteStateA的下一個狀態是ConcreteB”,其中“ConcreteStateA”與“ConcreteStateB”應該把A和B互換過來”。(p大simba 提供)
    3.03    P332 倒數第三行 "我對你的敬仰真如濤濤江水",其中“濤濤江水”應改為“滔滔江水”。(zml 提供)
    3.04    P333 第十四行,“工廠工廠,公仔愛你,就像老鼠愛大米。” 其中“公仔”應改為“工仔”。(zml 提供)
    3.05    P37  4.4節下的第一段第五行, “招聘大學生的公司的諮訊",其中“諮訊”應改為“資訊”。(cqchi 提供) 
    3.06    前言中P15倒數第8行, "Erich Gamm",其中"Gamm"應該是"Gamma"(在P367,附錄B的第一行有同樣的錯誤). (Kappa 提供)

    3.07    P12與P68兩頁上面簡單原廠模式的圖,簡單工廠類和運算類之間的關係應該是依賴(Dependency)而非關聯(Association),即簡單工廠類與運算類的連線是虛線箭頭,而非實線箭頭。(Steven Chen 和 hit_gsy 提供)

    3.08    p349 左上方那個說明框 “增加了override表示方法重寫”指向上應該再向下一些,指向“override”才正確。

    3.09    P150 倒數第五行,“ProductB1是AccessUser”,其中“AccessUser”應改為“SqlserverDepartment”。( 歐爾 提供)
    3.10    前言中P13 最後一行,“表示此名摘自”,其中“此名”應為“此句” (cqchi 提供)

    3.11    前言中p11倒數第六行“《Java與模式》(作者:閻宏”,其中在“閻宏”後應該加一個“)” (cqchi 提供)

    3.12    P11最後一行,“我們來看看這幾個類的結構圖。”與上文脫節。應該改為“好了,最後,我們來看看這幾個類的結構圖。”(cqchi 提供)

    3.13    P13第二段第二行,“介面還有另一種表示方法,俗稱棒棒糖標記法,就是唐老鴨類實現了‘講人話’的介面。”,其中“就是唐老鴨類實現了‘講人話’的介面”改為“比中的唐老鴨類就是實現了‘講人話’的介面”(cqchi 提供)

    3.14    p189 倒數第二行“你是意思是”應為“你的意思是”。(cqchi 提供)

    3.15    P313 倒數第三段“希望您能通過瀏覽器給她們投票,IE使用者,請發送OO加選手編號到http://www.ootv.com/,Firefox使用者請發送OO加選手編號到http://www.ootv.net/,其他瀏覽器使用者請發送OO加選手編號到http://www.ootv.org/。”,其中將“通過瀏覽器”修改為“通過手機”,將“IE使用者”修改為“移動使用者”,將“Firefox使用者”修改為“聯通使用者”,將“其它瀏覽器使用者”修改為“其它手機使用者”。這樣的修改和後面的很多地方就都不會有矛盾之處了。(cqchi 提供)

    3.16    p313 倒數第四行,“進級決賽”改為“晉級決賽”。(cqchi 提供)

    3.17    p103 第六段,“買一隻好的股票放在那裡所謂的‘悟股’”,其中“悟股”應為“捂股” (cqchi 提供)

    3.18    P360 第四段,第四行,“HelloWorld是字元型”,其中“字元型”應為“字串型”(cqchi 提供)

    3.19    P360 第四段,第五行,“還有就是ArrayList對於存放實值型別的資料,比如int型、string型或者結構struct的資料”,其中在"string型"和“或者結構”之間增加“(string是一種擁有實值型別特點的特殊參考型別)”說明。(cqchi 提供)

    3.20    P132,倒數第2行 “將有關狀態存入具體現察對象” 其中“現”字應為“觀”字。(薄霧輕寒 提供)

    3.21    P147   最後一行的“定義一個建立訪問User表對象的抽象的工廠介面”,其中“User”應該是“Department”(langya918 提供)

    3.22    P148   第2個提示框中的"SplserverDepartment工廠",其中“Splserver”應該是“Sqlserver"(langya918 提供)

    3.23    P148   第3個提示框中的"OleDBDepartment" 應該是"AccessDepartment" (langya918 提供)

    3.24    P317   中間UML圖的標題中,“12號選手 代理(ptoxy)”,其中“ptoxy”應改為“proxy”

    以上為六次重印時已修正的錯誤。

    4.01    P75  中代碼

//Factory 方法模式
   IFactory factory = new UndergraduteFactory();  //要改變為社區志願者,只需改變此處
   LeiFeng student = factory.CreateLeiFeng();
   student.BuyRice();
   student.Sweep();
   student.Wash();

修改為

//Factory 方法模式
   IFactory factory = new UndergraduteFactory();  //要改變為社區志願者,只需改變此處
    LeiFeng studentA = factory.CreateLeiFeng();
   studentA.BuyRice();
    LeiFeng studentB = factory.CreateLeiFeng();
   studentB.Sweep();
    LeiFeng studentC = factory.CreateLeiFeng();
   studentC.Wash();

     修改原因是因為這Factory 方法模式的實現代碼要和簡單原廠模式的代碼做對比,有讀者提出,原有的寫法讓人不是很容易理解,本人仔細分析覺得讀者講得有道理,在此修改完善。

     4.02 P35 第四行最後,“The Open-Closeed”中 "Closeed"應改為“Closed” (顧行星 提供)

     4.03 P16 代碼第二行 public Metabolism (Oxygen oxygen,Water water),當中少了一個void,應該是public void Metabolism (Oxygen oxygen,Water water)  (Shikiro 提供)

     4.04 P186 代碼第一行 “class 遊戲角色” ,當中“遊戲角色”應該改為“GameRole”(秦萌 提供)

     4.05 P288 下方代碼第二行 “context.演奏文本” ,當中“演奏文本”應該改為“PlayText”(秦萌 提供)

     若讀者您還發現什麼錯誤,請在此回複或給我留言,我將及時公布。在此先說一聲謝謝。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.