首页>参考读物>计算机科学与技术>软件工程及软件方法学

设计模式精解(英文版·第2版)
作者 : Alan Shalloway, James R.Trott
丛书名 : 经典原版书库
出版日期 : 2005-11-22
ISBN : 7-111-17569-7
定价 : 55.00元
扩展资源下载
扩展信息
语种 : 英文
页数 : 429
开本 : 16开
原书名 : Design Patterns Explained:A New Perspective On Object-Oriented Design(Second Edition)
原出版社: Addison-Wesley
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书的最大特点之一是作者采用类比而不是编程实例的方式将概念解释得非常清楚。我正在做一套关于OOP和软件开发的音频产品,这种讲述概念的方式给予我很大的启发。--Bruce Eckel
  希望那些仅基本了解面向对象编程和设计的读者,在完全接触设计模式之前,能够发现这本有用的书。本书是对现有的设计模式教材的补充,并可以在入门级教材 (如《UML Distilled》) 和更高级模式著作之间充当一个很好的衔接。--James Noble
  本书是模式领域最简洁、最清晰、最实用的著作,阐述了模式如何使整个开发过程变得更加容易,解释了面向对象设计的关键原则,以及各种特定模式的概念和优势。通过采用许多最新的Java示例,本书精确地向程序员和架构师展示出如何使用模式来更有效地设计、开发和交付软件。通过分析Java示例,本书提示了为什么、为什么不以及如何应用模式,而且解释了模式的实现。
  以畅销的第1版为基础,作者对本版进行了彻底更新,以反映新的软件设计趋势、模式和实现技术。根据广大读者的反馈,作者在第2版中加深了全书概念的阐述,并重新组织了全书内容,使其更易于理解。本书首先概述了模式的基础知识,以及面向对象分析和设计在当代软件开发中的重要性。随后,使用易懂的示例代码阐明了许多当今最有用的模式,包括它们的基础概念、优点、权衡取舍、实现技术以及需要避免的缺陷。另外,许多模式都附有UML图。
  本书假定读者没有模式方面的经验,因此是学习模式的理想的第一本书,对于GoF的经典名著《设计模式》,本书也是一个很好的补充。本书适用于学习面向对象设计和设计模式的学生、程序员以及从事软件开发的人士。

第2版的新增和修订内容
  ■开始“用模式的方法思考”的更好方式。
  ■使用极限编程和其他方法,设计模式如何使敏捷开发更加便利。
  ■如何使用共同性和可变性分析来设计应用程序架构。
  ■在模式驱动的开发过程中进行测试的关键作用。
  ■如何使用工厂来更有效地例示和管理对象。
  ■对象池 (Object-Pool) 模式--一种未被GoF标识的新模式。
  ■每章最后新增思考题/练习题。

图书特色

作者简介

Alan Shalloway, James R.Trott:Alan Shalloway:  Net Objectives (一家从事面向对象业务咨询/培训的公司) 的创始人、CEO和首席顾问,具有20多年的从业经验,并经常受邀在重要的软件开发会议 (包括SD Expro、Java One、OOP和OOPSLA) 上担任演讲人。他拥有麻省理工学院计算机科学硕士学位。
James R.Trott: 目前是美国西北太平洋地区一家大型金融机构的高级顾问。20多年来,他使用面向对象和基于模式的分析技术在知识管理和知识工程领域积累了丰富的经验。他拥有应用数学科学硕士、工商管理硕士和跨文化研究文科硕士学位。

图书目录

I. AN INTRODUCTION TO OBJECT-ORIENTED SOFTWARE DEVELOPMENT.

1. The Object-Oriented Paradigm.

  Overview.

  Before the Object-Oriented Paradigm: Functional Decomposition.

  The Problem of Requirements.

  Dealing with Changes: Using Functional Decomposition.

  Dealing with Changing Requirements.

  The Object-Oriented Paradigm.

  Object-Oriented Programming in Action.

  Special Object Methods.

  Summary.

  Review Questions.

2. The UML-The Unified Modeling Language.

  Overview.

  What Is the UML

  Why Use the UML

  The Class Diagram.

  Interaction Diagrams.

  Summary.

  Review Questions.

II. THE LIMITATIONS OF TRADITIONAL OBJECT-ORIENTED DESIGN.

3. A Problem That Cries Out for Flexible Code.

  Overview.

  Extracting Information from a CAD/CAM System.

  Understand the Vocabulary.

  Describe the Problem.

  The Essential Challenges and Approaches.

  Summary.

  Review Questions.

4. A Standard Object-Oriented Solution.

  Overview.

  Solving with Special Cases.

  Summary.

  Review Questions.

III. DESIGN PATTERNS.

5. An Introduction to Design Patterns.

  Overview.

  Design Patterns Arose from Architecture and Anthropology.

  Moving from Architectural to Software Design Patterns.

  Why Study Design Patterns

  Other Advantages of Studying Design Patterns.

  Summary.

  Review Questions.

6. The Facade Pattern.

  Overview.

  Introducing the Facade Pattern.

  Learning the Facade Pattern.

  Field Notes: The Facade Pattern.

  Relating the Facade Pattern to the CAD/CAM Problem.

  Summary.

  Review Questions.

7. The Adapter Pattern.

  Overview.

  Introducing the Adapter Pattern.

  Learning the Adapter Pattern.

  Field Notes: The Adapter Pattern.

  Relating the Adapter Pattern to the CAD/CAM Problem.

  Summary.

  Review Questions.

8. Expanding Our Horizons.

  Overview.

  Objects: The Traditional View and the New View.

  Encapsulation: The Traditional View and the New View.

  Find What Is Varying and Encapsulate It.

  Commonality and Variability Analysis and Abstract Classes.

  The Qualities of Agile Coding.

  Summary.

  Review Questions.

9. The Strategy Pattern.

  Overview.

  An Approach to Handling New Requirements.

  The International E-Commerce System Case Study: Initial Requirements.

  Handling New Requirements.

  The Strategy Pattern.

  Field Notes: Using the Strategy Pattern.

  Summary.

  Review Questions.

10. The Bridge Pattern.

  Overview.

  Introducing the Bridge Pattern.

  Learning the Bridge Pattern: An Example.

  An Observation About Using Design Patterns.

  Learning the Bridge Pattern: Deriving It.

  The Bridge Pattern in Retrospect.

  Field Notes: Using the Bridge Pattern.

  Summary.

  Review Questions.

11. The Abstract Factory Pattern.

  Overview.

  Introducing the Abstract Factory Pattern.

  Learning the Abstract Factory Pattern: An Example.

  Learning the Abstract Factory Pattern: Implementing It.

  Field Notes: The Abstract Factory Pattern.

  Relating the Abstract Factory Pattern to the CAD/CAM Problem.

  Summary.

  Review Questions.

IV. PUTTING IT ALL TOGETHER: THINKING IN PATTERNS.

12. How Do Experts Design

  Overview.

  Building by Adding Distinctions.

  Summary.

  Review Questions.

13. Solving the CAD/CAM Problem with Patterns.

  Overview.

  Review of the CAD/CAM Problem.

  Thinking in Patterns.

  Thinking in Patterns: Step 1.

  Thinking in Patterns: Step 2a.

  Thinking in Patterns: Step 2b.

  Thinking in Patterns: Step 2c.

  Thinking in Patterns: Steps 2a and 2b Repeated (Facade).

  Thinking in Patterns: Steps 2a and 2b Repeated (Adapter).

  Thinking in Patterns: Steps 2a and 2b Repeated (Abstract Factory).

  Thinking in Patterns: Step 3.

  Comparison with the Previous Solution.

  Summary.

  Review Questions.

V. TOWARD A NEW PARADIGM OF DESIGN.

14. The Principles and Strategies of Design Patterns.

  Overview.

  The Open-Closed Principle.

  The Principle of Designing from Context.

  The Principle of Encapsulating Variation.

  Abstract Classes vs. Interfaces.

  The Principle of Healthy Skepticism.

  Summary.

  Review Questions.

15. Commonality and Variability Analysis.

  Overview.

  Commonality and Variability Analysis and Application Design.

   Solving the CAD/CAM Problem with CVA.

  Summary.

  Review Questions.

16. The Analysis Matrix.

  Overview.

  In the Real World: Variations.

  The International E-Commerce System Case Study: Handling Variation.

  Field Notes.

  Summary.

  Review Questions.

17. The Decorator Pattern.

  Overview.

  A Little More Detail.

  The Decorator Pattern.

  Applying the Decorator Pattern to the Case Study.

  Another Example: Input/Output.

  Field Notes: Using the Decorator Pattern.

  The Essence of the Decorator Pattern.

  Summary.

  Review Questions.

VI. OTHER VALUES OF PATTERNS.

18. The Observer Pattern.

  Overview.

  Categories of Patterns.

  More Requirements for the International E-Commerce Case Study.

  The Observer Pattern.

  Applying the Observer to the Case Study.

  Field Notes: Using the Observer Pattern.

  Summary.

  Review Questions.

19. The Template Method Pattern.

  Overview.

  More Requirements for the International E-Commerce Case Study.

  The Template Method Pattern.

  Applying the Template Method to the International E-Commerce Case Study.

  Using the Template Method Pattern to Reduce Redundancy.

  Field Notes: Using the Template Method Pattern.

  Summary.

  Review Questions.

VII. FACTORIES.

20. Lessons from Design Patterns: Factories.

  Overview.

  Factories.

  The Universal Context Revisited.

  Factories Follow Our Guidelines.

  Limiting the Vectors of Change.

  Another Way to Think About It.

  Different Roles of Factories.

  Field Notes.

  Summary.

  Review Questions.

  Overview.

21. The Singleton Pattern and the Double-Checked Locking Pattern.

  Introducing the Singleton Pattern.

  Applying the Singleton Pattern to the Case Study.

  A Variant: The Double-Checked Locking Pattern.

  Reflections.

  Field Notes: Using the Singleton and Double-Checked Locking Patterns.

  Summary.

  Review Questions.

22. The Object Pool Pattern.

  Overview.

  A Problem Requiring the Management of Objects.

   The Object Pool Pattern.

  Observation: Factories Can Do Much More Than Instantiation.

  Summary.

  Review Questions.

23. The Factory Method Pattern.

  Overview.

  More Requirements for the Case Study.

  The Factory Method Pattern.

  Factory Method Pattern and Object-Oriented Languages.

  Field Notes: Using the Factory Method Pattern.

  Summary.

  Review Questions.

24. Summary of Factories.

  Overview.

  Steps in the Software Process.

  Parallels in Factories and XP Practices.

  Scaling Systems.

VIII. ENDINGS AND BEGINNINGS.

25. Design Patterns Reviewed: A Summation and a Beginning.

  Overview.

  A Summary of Object-Oriented Principles.

  How Design Patterns Encapsulate Implementations.

  Commonality and Variability Analysis and Design Patterns.

  Decomposing a Problem Domain into Responsibilities.

  Patterns and Contextual Design.

  Relationships Within a Pattern.

  Design Patterns and Agile Coding Practices.

  Field Notes.

  Summary.

  Review Questions.

26. Bibliography.

  Design Patterns Explained: The Web Site Companion.

  Recommended Reading.

  Recommended Reading for Java Programmers.

  Recommended Reading for C++ Programmers.

  Recommended Reading for COBOL Programmers.

  Recommended Reading on eXtreme Programming.

  Recommended Reading on General Programming.

  Personal Favorites.

Index.

教学资源推荐
作者: 骆斌 主编 刘嘉 张瑾玉 黄蕾 编著
作者: Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides
作者: (英)Ian Sommerville 著 圣安德鲁斯大学
参考读物推荐
作者: 吴孔辉 著 VMware中国研发中心 审校
作者: (美)瓦特·汉弗里(Watts S. Humphrey) 詹姆斯·欧弗(James W. Over)著
作者: [美]卡尔 T. 乌利齐(Karl T. Ulrich) 史蒂文 D. 埃平格(Steven D. Eppinger) 著