Create your own shelf sign up

Together we find better books

[−]
  • Search Conteggio caratteri ISBN valido ISBN non valido Codice a barre valido Codice a barre non valido loading search

Head First Design Patterns

(Head First)

By ,,,

Publisher: O'Reilly Media, Inc.

4.5
(272)

Language:English | Number of Pages: 676 | Format: Paperback | In other languages: (other languages) Chi traditional , Polish

Isbn-10: 0596007124 | Isbn-13: 9780596007126 | Publish date:  | Edition 1

Category: Computer & Technology , Professional & Technical , Reference

Do you like Head First Design Patterns ?
Join aNobii to see if your friends read it, and discover similar books!

Sign up for free
Book Description
You're not alone. At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun. You want to learn about the patterns that matter--why to use them, when to use them, how to use them (and when NOT to use them). But you don't just want to see how patterns look in a book, you want to know how they look "in the wild". In their native environment. In other words, in real world applications. You also want to learn how patterns are used in the Java API, and how to exploit Java's built-in pattern support in your own code. You want to learn the real OO design principles and why everything your boss told you about inheritance might be wrong (and what to do instead). You want to learn how those principles will help the next time you're up a creek without a design paddle pattern. Most importantly, you want to learn the "secret language" of Design Patterns so that you can hold your own with your co-worker (and impress cocktail party guests) when he casually mentions his stunningly clever use of Command, Facade, Proxy, and Factory in between sips of a martini. You'll easily counter with your deep understanding of why Singleton isn't as simple as it sounds, how the Factory is so often misunderstood, or on the real relationship between Decorator, Facade and Adapter. With Head First Design Patterns, you'll avoid the embarrassment of thinking Decorator is something from the "Trading Spaces" show. Best of all, in a way that won't put you to sleep! We think your time is too important (and too short) to spend it struggling with academic texts. If you've read a Head First book, you know what to expect--a visually-rich format designed for the way your brain works. Using the latest research in neurobiology, cognitive science, and learning theory, Head First Design Patterns will load patterns into your brain in a way that sticks. In a way that lets you put them to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team.
Sorting by
  • 1

    中文書,所以可以很快的看完。
    還是比較推,GoF的Design Pattern的聖經呀。這本書站在書店把它看完就夠了。

    said on 

  • 4

    看了ITHome的年度推薦。
    圖解方式對於理解design pattern清楚多了,也才有動力看完。

    裝飾者
    有些感覺,寫code的確遇過類似的情況,要點應該是將物件自身當作參數傳進去,一層一層。

    觀察者
    一對多的關係,也就是訂閱模式,通常是這個一push訊息,但不能預期有特定的通知次序。

    工廠
    有abstract的工廠,也有abstract的產品。
    工廠定義流程,但裡面的實作,是sub class自行負責,且一定要實作(因為是工廠的abstract method)。
    抽象 ...continue

    看了ITHome的年度推薦。
    圖解方式對於理解design pattern清楚多了,也才有動力看完。

    裝飾者
    有些感覺,寫code的確遇過類似的情況,要點應該是將物件自身當作參數傳進去,一層一層。

    觀察者
    一對多的關係,也就是訂閱模式,通常是這個一push訊息,但不能預期有特定的通知次序。

    工廠
    有abstract的工廠,也有abstract的產品。
    工廠定義流程,但裡面的實作,是sub class自行負責,且一定要實作(因為是工廠的abstract method)。
    抽象工廠與工廠方法之別:
    抽象工廠使用物件合成,定義抽象介面,不需指定具體的class
    工廠方法使用繼承,由sub class決定實作內容

    獨體模式
    會有多執行緒的問題,三種解法:
    1.synchronized getInstance(),但慢。
    2.一開始就new。
    3.用關鍵字volatile,但要JDK1.5以後。

    命令模式
    將請求封裝成物件,調用者可用不同的請求當參數。

    Adapter模式及Facade模式
    差異在於目的。轉接器的目的是改變介面符合客戶的期望,而表象模式的目的是,提供次系統的一個簡化介面。
    區別:
    裝飾者-不改變介面,但加入責任。
    轉接者-將一個介面轉成另一個介面
    表象-讓介面更簡化

    樣板方式模式
    若物件有相似的演算流程,可以提出來,變成abstract class。定義final method,固定共通的流程。
    這些共通的method可以是abstract,也可以是直接在abstract classs實作好。
    有個特徵: 別call我,我會call你= abstract class 控制流程,call 繼承class之method。

    反覆器與合成模式
    反覆器: 取得collection的元素,隱藏實作細節,用的人不需要知道如何取得。
    合成模式: 物件合成樹狀結構,menuitem也可以是一株小tree大tree。

    狀態模式
    定義狀態介面,將每個狀態封裝成一個類別。
    (提醒,類別圖與策略模式一模一樣,差別在於意圖不同。)

    代理人模式
    本地端有個代理者,代替本地物件叫用遠端服務。
    有好幾種變形:虛擬代理人,保護代理人....

    複合模式
    結合兩個或以上的模式,組成一個新的解決方案。例如MVC,結合了觀察者模式,策略模式,合成模式。

    said on 

  • 5

    將複雜變的簡單 - 就是王道

    將複雜的 Design Patterns 闡述的很簡單易讀,
    就像 Ward Cunningham 所說:「我覺得像是剛剛把一本數千鎊重的書高舉過頭頂。」

    said on 

  • 4

    什麼是設計模式? 設計模式這個詞有點兒玄,因為設計模式不是一項具體技術,學會後可以寫出遊戲或者手機App等等。用我自己的話來說,設計模式是設計軟體架構的慣用手法,更精確地講,是設計物件導向程式架構的手法,目的是為了讓軟體在未來更有彈性,更容易擴充功能。


    如果聽不懂上面那段話也沒關係,我學會設計模式之前,也聽不懂那些設計模式簡介在說什麼。


    不過我還是分享一下我的經歷,回想我學 OOP 的過程中,有一段時間,不知怎麼好像有幾道閃電打進腦子裡,以前每念就忘的Java API呼叫,突然全都看明白了,腦子也靈光了,就差點考試都考一百分。原因很簡單,因為我念了設計模式,而 ...continue

    什麼是設計模式? 設計模式這個詞有點兒玄,因為設計模式不是一項具體技術,學會後可以寫出遊戲或者手機App等等。用我自己的話來說,設計模式是設計軟體架構的慣用手法,更精確地講,是設計物件導向程式架構的手法,目的是為了讓軟體在未來更有彈性,更容易擴充功能。

    如果聽不懂上面那段話也沒關係,我學會設計模式之前,也聽不懂那些設計模式簡介在說什麼。

    不過我還是分享一下我的經歷,回想我學 OOP 的過程中,有一段時間,不知怎麼好像有幾道閃電打進腦子裡,以前每念就忘的Java API呼叫,突然全都看明白了,腦子也靈光了,就差點考試都考一百分。原因很簡單,因為我念了設計模式,而 Java API 裡頭用了很多的設計模式。

    要談設計模式,一定先要有設計上的難題。

    假如你是一位遊戲引擎的開發人員。開發遊戲引擎呢,幾乎就像在寫一支真正的遊戲程式,該搞定的技術細節一個都不能少,只不過呢,寫的是空架子遊戲,最關鍵的地方要留白,因為這只是遊戲引擎,最終必須交給使用引擎的人來完成整個遊戲。

    現在問題來囉,你並不知道這個引擎未來會被拿來寫什麼樣的遊戲,所以空架子一開始就要提供充足的彈性,即使不改寫原有引擎的任何一行源碼,也能讓人很容易的填充內容進去,同時為了適應各種類型的遊戲,引擎還要能輕鬆地擴充功能。

    既不能改寫原有引擎的任何一行源碼,又有充足的彈性,輕鬆地擴充功能,這該怎麼做到阿?

    舉比較實際的例子,Java Swing的開發者就遇見了這類彆扭的問題,他實作JButton按鈕元件時,他不知道按下按鈕後要執行什麼工作,他也不知道按下按鈕之後應該要通知哪個物件,因為這兩件事都應該交由使用Swing的人決定,而不是開發Swing的人,為了解決這個問題,就出現了傾聽者(Listener)的設計,背後的精神就是觀察者模式。

    所以要了解設計模式之前,必須要先有設計的難題,JButton的設計就是個難題,先有難題,才知道傾聽者為什麼是個好設計。這時去學習觀察者模式才有意義。

    我認為這本「深入淺出設計模式」最令人激賞的地方就在它為每個設計模式精心打造的軟體設計難題。這個難題恰如其份地顯現出模式的威力,不會過於困難以至於失焦,也不會太過簡單以至於殺雞用牛刀。

    書裡會有個老闆或是客戶一樣的人跑出來問你,嘿大哥,我們原本有支程式如何如何,現在我想要擴充一個新功能進去,該怎麼辦呢?

    先有了明確可以付諸實踐的場景,接著你仔細的去思量這個難題,很快就會發現問題「沒有表面想的那麼簡單呢」,不用一些手段不行。而在思索如何解決設計難題時,模式也不是一下子就蹦的出現,而是逐一探討各種方法的優劣之後,依循物件導向設計原則,慢慢的封裝、演化,最後才出現模式。

    因為模式是一種設計上的抽象經驗,所以沒有足夠實戰經驗,不曾對自己寫出的爛架構而傷腦筋的人,很難體會模式的好。這本「深入淺出設計模式」很努力地想要彌補這道鴻溝,我必須稱讚它做的相當成功,而且內容有深度又有趣,個人極度推薦。

    said on 

  • 1

    Head First? Mai più

    La trattazione è troppo dispersiva, la presentazione confonde e rende meno chiaro il contenuto.
    Non credo che comprerò mai un libro della serie Head First.

    said on 

  • 4

    quite good for reference

    finally...finished reading this one.

    its quite good to read it, though sometimes I do not really get it, can take as tool to sharpen ur minds in design or programming in java...

    worth a look and thinking in patterns.

    said on 

  • 0

    有人說:如果GoF的Design Pattern是聖經的話,那後續出版與設計模式相關的著作,都可以算是它的註解版. 而Head First Design Pattern是一本圖文併貌的註解版,非常適合初學者,雖然當中只仔細介紹了14種設計模式,不過應該很受用了.

    said on 

  • 4

    表達方式很特別的一本書,以很簡單口語化及活潑插圖的表達方式道出撰寫程式設計的最佳模式,適合想初步了解設計模式(design pattern)為何物的programmer們。

    said on 

  • 5

    如果你已經看過深入淺出Java,或是已經熟悉Java而想更上一層樓,這是你一定要看的一本書。因為已經有太多人在物件導向的路上遇過相同的問題,而前人的經驗累積最終成為了一項項經典的模式。看了這本書省去重新打造輪子的功夫,直接拿了現有的輪子,讓我們的程式起飛吧!


    前面那段好像有點太誇張了,看起來就像是書商的廣告詞,囧。總之看了這本書的確讓我有很大的收穫,雖然已經有了不少寫Java的經驗,然而有時還是會遇上一些奇怪的需求不知道該怎麼辦比較好。當然有時也有遇上一些Java本身設計上的原理不甚了解。看了這本書才發現裡頭的種種模式都很經典,而且本書的例子都很淺顯易懂,雖然看完後仍有些精 ...continue

    如果你已經看過深入淺出Java,或是已經熟悉Java而想更上一層樓,這是你一定要看的一本書。因為已經有太多人在物件導向的路上遇過相同的問題,而前人的經驗累積最終成為了一項項經典的模式。看了這本書省去重新打造輪子的功夫,直接拿了現有的輪子,讓我們的程式起飛吧!

    前面那段好像有點太誇張了,看起來就像是書商的廣告詞,囧。總之看了這本書的確讓我有很大的收穫,雖然已經有了不少寫Java的經驗,然而有時還是會遇上一些奇怪的需求不知道該怎麼辦比較好。當然有時也有遇上一些Java本身設計上的原理不甚了解。看了這本書才發現裡頭的種種模式都很經典,而且本書的例子都很淺顯易懂,雖然看完後仍有些精華無法馬上吸收,但已經讓我覺得功力大增了!

    就和其他本深入淺出系列的書一樣,每看一次,都會有不同的心得與收穫,值得常常回顧。

    said on 

Sorting by