設計模式

所属分类:專用軟件  
出版时间:2007-3   出版时间:機械工業出版社   作者:伽瑪   页数:374   译者:李英軍  

内容概要

  《設計模式︰可復用面向對象軟件的基礎》(雙語版)是軟件設計領域中的經典著作,對軟件技術的發展起了重要作用。《設計模式︰可復用面向對象軟件的基礎》(雙語版)結合設計實例從面向對象的設計中精選出23個設計模式,總結了面向對象設計中最有價值的經驗,並且用簡潔可復用的形式表達出來。《設計模式︰可復用面向對象軟件的基礎》(雙語版)分類描述了一組設計良好、表達清楚的軟件設計模式,這些模式在實用環境下特別有用。《設計模式︰可復用面向對象軟件的基礎》(雙語版)適合大學計算機專業的學生、研究生及相關人員參考。

书籍目录

PrefaceForewordGuide to Readers1 Introduction1.1 What Is a Design Pattern?1.2 Design Patterns in Smalltalk MVC1.3 Describing Design Patterns1.4 The Catalog of Design Patterns1.5 Organizing the Catalog1.6 How Design Patterns Solve Design Problems1.7 How to Select a Design Pattern1.8 How to Use a Design Pattern2 A Case Study: Designing a Document Editor2.1 Design Problems2.2 Document Structure2.3 Formatting2.4 Embellishing the User Interface2.5 Supporting Multiple Look-and-Feel Standards2.6 Supporting Multiple Window Systems2.7 User Operations2.8 Spelling Checking and Hyphenation2.9 SummaryDesign Pattern Catalog3 Creational PatternsAbstract FactoryBuilderFactory MethodPrototypeSingletonDiscussion of Creational Patterns4 Structural PatternsAdapterBridgeCompositeDecoratorFacadeFlyweightProxyDiscussion of Structural Patterns5 Behavioral PatternsChain of ResponsibilityCommandInterpreterItcratorMediatorMementoObserverStateStrategyTemplate MethodVisitorDiscussion of Behavioral Patterns6 Conclusion6.1 What to Expect from Design Patterns6.2 A Brief History6.3 The Pattern Community6.4 An Invitation6.5 A Parting ThoughtA GlossaryB Guide to NotationB.1 Class DiagramB.2 Object DiagramB.3 Interaction DiagramC Foundation ClassesC.1 ListC.2 IteratorC.3 ListIteratorC.4 PointC.5 RectBibliographyIndex

编辑推荐

  《設計模式︰可復用面向對象軟件的基礎》(雙語版)是引導讀者走入軟件設計迷宮的指路明燈,凝聚了軟件開發界幾十年的設計經驗。四位頂尖的面向對象領域專家盡心挑選了最具價值的23種設計實踐,加以分類整理和命名,並用簡潔而易于重用的形式表達出來。這23個模式逐漸成為開發界進行技術交流所必備的基本知識和語匯。  《設計模式︰可復用面向對象軟件的基礎》(雙語版)已經成為廣大技術人員的聖經和經典,一直名列Amazon和各大書店銷售榜前列。十年來不斷重印,銷售逾七萬冊。

图书封面




    設計模式下載



用户评论 (总计9条)

 
 

  •       非常不錯的一本書...........................
      非常不錯的一本書...................................非常不錯的一本書...........非常不錯的一本書........
  •       花了一個月時間,把英文版大致過了一遍。由于有一些失敗的編程經歷,大致還是能夠理解作者的用意的。個人喜歡先看motivation,structure和sample code,再回過頭看討論。
      
      有點遺憾的是書中對各個模式的橫向對比做得不夠。有些地方容易混淆,有些場合的名詞太過空洞。或許只有在反復閱讀和實踐中去領悟吧。
      
      
  •       可復用的軟件,好!
      面向對象的軟件,好!
      我的代碼應該盡可能的用設計模式,嗯,等等。
      
      之所以出此感慨是因為最近一次的code review我用了state pattern,結果reviewer說不直觀。我郁悶了一會兒,試圖教育他什麼是state pattern,為什麼好。不過最後還是改回了if...else來實現。
      
      又看了公司(Google)的一個Web Application Framework,文檔里說這是用了Command Pattern。我一看,好,用了模式的肯定是好東東。
      
      現在我的感覺是如果是寫Library、Framework什麼的,應該用設計模式。寫Application,理解設計模式可以幫助學習Framework。不過Application本身的代碼未必要用設計模式,因為設計模式是適合需要重用的代碼,很多Application的代碼並不好復用。
  •       非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯非常不錯
  •        兩年前的面向對象課程,要求我們讀這本書,當時沒太看懂,只是簡單的應付了一下作業,將自己要講的3個模式囫圇吞棗地看了.當時講composite模式的時候,還記得被黃震春老師批評,我正好理解反了。。
      
       今年暑假我再次看此書,多了兩年的編程經歷,一年的實習經歷,忽然覺得簡單了很多。在郵箱找到了兩年前我當時在台上講composite模式的ppt,看了幾頁就立馬發現,我確實搞反了。
      
       這本20年前的神作,雖然很多人說晦澀難懂,我現在覺得其實還好,沒想像中的那麼難理解,也沒想像中的那麼枯燥無味,認真看還是能看的。
      
       書中的各種模式可能還需要自己在接下來的編程中逐漸去融會貫通。但是這幾天讀完了全書,一本兩年前看不懂,一直令我感到畏懼的書,今天終于被我拿下了,還是難以隱藏心中的喜悅之情,所以短短寫一兩百字紀念一下~
  •       之前看過若干本設計模式的書,大都是矯柔造作的例子,長篇累牘的廢話,不清不楚的論述。往往翻看數頁仍然不知所雲,雲里霧里。
      
      相較而言,本書對于模式的論述可謂拳拳到肉,酣暢淋灕。所采用的例子也是從現實項目中抽取出來的,更加貼近設計模式的現實使用場景。快哉!快哉!
      
      本以為知識密度如此大的書勢必枯燥的緊,但沒想到翻看數百頁卻欲罷不能。
  •       23個設計最基礎的設計模式,每每讀起如醍醐灌頂!不愧為經典之作!
      
      
      創建型
      1. Abstract Factory︰提供一個創建一系列相關或相互依賴對象的接口,而無須指定它們具體的類
      2. Builder︰將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示
      3. Factory Method︰定義一個用于創建對象的接口,讓子類決定實例化那一個類。Factory Method使得一個類的實例化延遲到其子類
      4. Prototype︰用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象
      5. Singleton︰保證一個類僅有一個實例,並提供一個訪問它的全局訪問點
      
      結構型
      1. Adapter︰將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些類可以一起工作
      2. Bridge︰將抽象部分與它的實現部分分離,使它們都可以獨立地變化
      3. Composite︰將對象組合成樹形結構以表示"部分-整體"的層次結構。Composite使得用戶對單個對象和組合對象的使用具有一致性
      4. Decorator︰動態地給一個對象添加一些額外的職責。就增加功能來說,Decorator模式比生成子類給為靈活
      5. Facade︰為子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得子系統更加容易使用
      6. Flyweight︰運行共享技術有效地支持大量細粒度的對象
      7. Proxy︰為其它對象提供一種代理以控制對這個對象的訪問
      
      行為型
      1. Chain of Responsibility︰使多個對象都有機會處理請求,從而避免請求的發送者和接收者之間的耦合關系。將這些對象連成一條鏈,並沿著這條鏈傳遞該請求,直到有一個對象處理它為止
      2. Command︰將一個請求封裝為一個對象,從而使你可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日志,以及支持可撤銷的操作
      3. Interpreter︰給定一個語言,定義它的文法的一種表示,並定義一個解釋器,這個解釋器使用該表示來解釋語言中的句子
      4. Iterator︰提供一種方法順序訪問一個聚合對象中的各個元素,而又不暴露該對象的內部表示
      5. Mediator︰用一個中介對象來封裝一系列的對象交互。中介者使各對象不需要顯式的相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互
      6. Memento︰在不破壞封裝的前提下,捕獲一個對象的內部狀態,並在對象之外保存這個狀態。這樣以後就可將該對象恢復到原先保存的狀態
      7. Observer︰定義對象間的一種一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴于它的對象都得到通知並被自動更新
      8. State︰允許一個對象在其內部狀態改變時改變它的行為。對象看起來似乎修改了它的類
      9. Strategy︰定義一系列的算法,把他們一個個封裝起來,並且使它們可互相替換。本模式使得算法可獨立與使用它的客戶而變化
      10. Template Method︰定義一個操作中的算法骨架,而將一些步驟延遲到子類中。Template Method使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟
      11. Visitor︰表示一個作用于某對象結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作
      
  •       如書中所說“設計面向對象軟件比較困難,而設計可復用的面向對象軟件就更加困難”,很多人在設計面向對象軟件時往往無從下手,勉強設計的結果也很難擴展和維護,這本書告訴你,大師是怎麼設計的。
      
      本書以一個文檔編輯器的示例開始引入常見的設計模式,並做了簡單的說明。後面各章按類別︰創建型、結構型、行為,詳細分析了各個模式,並配以樣例代碼。本書有一點比較好的是,他把幾個有關的模式放在一起,對比他們的特點並說明他們之間的關系,這樣一來,即使你對某個模式只有一點模糊的概念,完全可以把這本書當字典,查到你想使用的模式和相關的模式。
      
      當然有一點覺得不大友好,為啥樣例代碼是 C++ 和 smalltalk?C++ 是一個主流的編程語言,用這個說的過去,雖然我對 C++ 一點都不熟悉,smalltalk 雖然有點名氣,但是畢竟用的不廣泛,估計沒多少人能看懂。我還是建議使用 Java,一門語言就足夠了。
  •     nb!!!
 

計算機與互聯網 PDF免费下载,專用軟件PDF免费下载。 计算机教程网 

计算机教程网 @ 2017