书籍详情
设计模式Java手册(影印版)
作者:(美)Steven John Metsker著
出版社:中国电力出版社
出版时间:2004-01-01
ISBN:9787508314099
定价:¥49.80
购买这本书可以去
内容简介
Java程序员现在有了可以发挥设计模式法力的终极武器这部杰出的著作所精选的示例、练习以及应用设计模式时面临的挑战,将帮助你把设计模式理论变为现实SteveMetsker“寓教于实践”的方式既可增强你的实践技能,也可奠定你在关键的开发任务中运用设计模式的信心。本书阐释了经典著作《DesignPatterns》(Addison-Wesley,1995)中介绍的23种基本设计模式在这部全新的技术手册中,将这些设计模式划分成五个主要类别:接口类模式、责任类模式、构造类模式、操作类模式和扩展类模式对每个类别描述的第一章,是帮助你复习和测试你在Java中运用设计模式的能力接着,后面的章节将详细解释某个特定的模式,并通过UML图和Java代码进行演示,然后向你提出编程方面的命题,让你自己体验通过本书,你将会学到下面这些专业技能:●使域数据适合Swing组件——Adapter模式●为Swing创建外观——Facade模式●处理组合递归的,情形——Composite模式●理解在Java数据库连接中桥的作用——Bridge模式●在Model/View/Controller和观察者之间建立联系——Observer模式●通过中介维护关系的完整性——Mediator模式●在计算机之间使用代理进行通信——Proxy模式●让服务提供商决定哪个类将被实例化●支持Memento的undo操作——Memento模式●通过克隆进行原型化——Prototype模式●使用命令提供服务——Command模式●开发线程安全的迭代器——Iterator模式●通过Decorator和Visitor扩展类——Decorator模式和Visitor模式设计模式难题的解决方案在书的背面,因此你可以将自己的做法与专家的方法进行对照,书中简单介绍了UML,解释了UML的建模表示法,同时本书所有的示例代码均可以在网站上找到。通过本书的指导和训练,你将完全理解设计模式在Java应用开发中所扮演的角色,增强在实际工作中应用设计模式的能力。StevenJohnMetsker是一位学者,也是撰写面向对象技术方面书籍的作者,他已经出版的著作主要涉及对象模型中的关系完整性、Java逻辑难题的解决,以及“对象”概念在Plato和OO语言方面有什么不同,Steve还是《BuildingParserwithJava》(Addison-Wesley,2001)一书的作者,这本书介绍了如何简单而快捷地构建一个新的小型计算机语言。
作者简介
StevenJohnMetsker是一位学者,也是撰写面向对象技术方面书籍的作者。他已经出版的著作主要涉及对象模型中的关系完整性、Java逻辑难题的解决,以及“对象”概念在Plato和OO语言方面有什么不同。Steve还是《BuildingParserswithJava》一书的作者,这本介绍了如何简单而快捷地构建一个新的小型计算机语言。
目录
Foreword
Preface
1 INTRODUCTION TO PATTERNS
Why Patterns?
Why Design Patterns?
Why Java?
Why UML?
Why a Workbook?
The Organization of This Book
Welcome to Oozinoz!
Source Code Disclaimer
Summary
PART I INTERFACE PATTERNS
2 INTRODUCING INTERFACES
Ordinary Interfaces
Interfaces and Obligations
Placing Constants in Interfaces
Summary
Beyond Ordinary Interfaces
3 ADAPTER 21
Adapting in the Presence of Foresight
Class and Object Adapters
Unforeseen Adaptation
Recognizing ADAPTER
Summary
4 FACADE 37
Refactoring to FACADE
Facades, Utilities, and Demos
Summary
5 COMPOSITE 51
An Ordinary Composite
Recursive Behavior in Composites
Trees in Graph Theory
Composites with Cycles
Consequences of Cycles
Summary
6 BRIDGE 65
A Classic Example of BRIDGE: Drivers
Refactoring to BRIDGE
A Bridge Using the List Interface
Summary
PART II RESPONSIBILITY PATTERNS
7 INTRODUCING RESPONSIBILITY
Ordinary Responsibility
Controlling Responsibility with Visibility
Summary
Beyond Ordinary Responsibility
8 SINGLETON
SINGLETON Mechanics
Singletons and Threads
Recognizing SINGLETON
Summary
9 OBSERVER
A Classic Example: OBSERVER in Swing
Model/View/Controller
Maintaining an Observable Object
Summary
10 MEDIATOR 103
A Classic Example: GUI Mediators
Relational Integrity Mediators
Summary
11 PROXY 115
A Classic Example: Image Proxies
Image Proxies Reconsidered
Remote Proxies
Summary
12 CHAIN OF RESPONSIBILITY 131
Varieties of Lookup
Refactoring to CHAIN OF RESPONSIBILITY
Anchoring a Chain
CHAIN OF RESPONSIBILITY without COMPOSITE
Summary
13 FLYWEIGHT 139
Recognizing FLYWEIGHT
Immutability
Extracting the Immutable Part of a Flyweight
Sharing Flyweights
Summary
PART III CONSTRUCTION PATTERNS
14 INTRODUCING CONSTRUCTION 151
Ordinary Construction
Superclass Collaboration
Collaboration within a Class
Summary
Beyond Ordinary Construction
15 BUILDER 157
Building from a Parser
Building under Constraints
Building a Counteroffer
Summary
16 FACTORY METHOD 165
Recognizing FACTORY METHOD
A Classic Example of FACTORY METHOD: Iterators
Taking Control of Which Class to Instantiate
FACTORY METHOD in Parallel Hierarchies
Summary
17 ABSTRACT FACTORY 175
Abstract Factories for Families of Objects
Packages and Abstract Factories
Abstract Factories for Look-and-Feel
Summary
18 PROTOTYPE 183
Prototypes as Factories
Prototyping with Clones
Using Object. clone()
Summary
19 MEMENTO 193
Memento Durability
Applying Memento
Persisting Mementos across Sessions
Using Strings as Mementos
Summary
PART IV OPERATION PATTERNS
20 INTRODUCING OPERATIONS 205
Operations, Methods, and Algorithms
The Mechanics of Methods
Exceptions in Methods
Summary
Beyond Ordinary Operators
21 TEMPLATE METHOD 215
A Classic Example of TEMPLATE METHOD: Sorting
Completing an Algorithm
TEMPLATE METHOD Hooks
Refactoring to TEMPLATE METHOD
Summary
22 STATE 225
Modeling States
Refactoring to STATE
Making States Constant
Summary
23 STRATEGY 237
Modeling Strategies
Refactoring to STRATEGY
Comparing STRATEGY and STATE
Comparing STRATEGY and TEMPLATE METHOD
Summary
24 COMMAND 249
A Classic Example: Menu Commands
Using COMMAND tO Supply a Service
COMMAND in Relation to Other Patterns
Summary
25 INTERPRETER 259
An INTERPRETER Example
Interpreters, Languages, and Parsers
Summary
PART V EXTENSION PATTERNS
26 INTRODUCING EXTENSIONS 273
Reuse as an Alternative to Extension
Extending by Subclassing
The Liskov Substitution Principle
Extending by Delegating
Summary
Beyond Ordinary Extension
27 DECORATOR 289
A Classic Example of DECORATOR: Streams
Function Decorators
Decorating without DECORATOR
Summary
28 ITERATOR 313
Type-Safe Collections
Iterating Over a Composite
Thread-Safe Iterators
Summary
29 VISITOR 337
Supporting VISITOR
Extending with VISITOR
VISITOR Cycles
VISITOR Controversy
Summary
PART VI APPENDIXES
A APPENDIX A: DIRECTIONS 355
B APPENDIX B: SOLUTIONS 359
C APPENDIX C: UML AT A GLANCE 441
Glossary 449
Bibliography 459
Preface
1 INTRODUCTION TO PATTERNS
Why Patterns?
Why Design Patterns?
Why Java?
Why UML?
Why a Workbook?
The Organization of This Book
Welcome to Oozinoz!
Source Code Disclaimer
Summary
PART I INTERFACE PATTERNS
2 INTRODUCING INTERFACES
Ordinary Interfaces
Interfaces and Obligations
Placing Constants in Interfaces
Summary
Beyond Ordinary Interfaces
3 ADAPTER 21
Adapting in the Presence of Foresight
Class and Object Adapters
Unforeseen Adaptation
Recognizing ADAPTER
Summary
4 FACADE 37
Refactoring to FACADE
Facades, Utilities, and Demos
Summary
5 COMPOSITE 51
An Ordinary Composite
Recursive Behavior in Composites
Trees in Graph Theory
Composites with Cycles
Consequences of Cycles
Summary
6 BRIDGE 65
A Classic Example of BRIDGE: Drivers
Refactoring to BRIDGE
A Bridge Using the List Interface
Summary
PART II RESPONSIBILITY PATTERNS
7 INTRODUCING RESPONSIBILITY
Ordinary Responsibility
Controlling Responsibility with Visibility
Summary
Beyond Ordinary Responsibility
8 SINGLETON
SINGLETON Mechanics
Singletons and Threads
Recognizing SINGLETON
Summary
9 OBSERVER
A Classic Example: OBSERVER in Swing
Model/View/Controller
Maintaining an Observable Object
Summary
10 MEDIATOR 103
A Classic Example: GUI Mediators
Relational Integrity Mediators
Summary
11 PROXY 115
A Classic Example: Image Proxies
Image Proxies Reconsidered
Remote Proxies
Summary
12 CHAIN OF RESPONSIBILITY 131
Varieties of Lookup
Refactoring to CHAIN OF RESPONSIBILITY
Anchoring a Chain
CHAIN OF RESPONSIBILITY without COMPOSITE
Summary
13 FLYWEIGHT 139
Recognizing FLYWEIGHT
Immutability
Extracting the Immutable Part of a Flyweight
Sharing Flyweights
Summary
PART III CONSTRUCTION PATTERNS
14 INTRODUCING CONSTRUCTION 151
Ordinary Construction
Superclass Collaboration
Collaboration within a Class
Summary
Beyond Ordinary Construction
15 BUILDER 157
Building from a Parser
Building under Constraints
Building a Counteroffer
Summary
16 FACTORY METHOD 165
Recognizing FACTORY METHOD
A Classic Example of FACTORY METHOD: Iterators
Taking Control of Which Class to Instantiate
FACTORY METHOD in Parallel Hierarchies
Summary
17 ABSTRACT FACTORY 175
Abstract Factories for Families of Objects
Packages and Abstract Factories
Abstract Factories for Look-and-Feel
Summary
18 PROTOTYPE 183
Prototypes as Factories
Prototyping with Clones
Using Object. clone()
Summary
19 MEMENTO 193
Memento Durability
Applying Memento
Persisting Mementos across Sessions
Using Strings as Mementos
Summary
PART IV OPERATION PATTERNS
20 INTRODUCING OPERATIONS 205
Operations, Methods, and Algorithms
The Mechanics of Methods
Exceptions in Methods
Summary
Beyond Ordinary Operators
21 TEMPLATE METHOD 215
A Classic Example of TEMPLATE METHOD: Sorting
Completing an Algorithm
TEMPLATE METHOD Hooks
Refactoring to TEMPLATE METHOD
Summary
22 STATE 225
Modeling States
Refactoring to STATE
Making States Constant
Summary
23 STRATEGY 237
Modeling Strategies
Refactoring to STRATEGY
Comparing STRATEGY and STATE
Comparing STRATEGY and TEMPLATE METHOD
Summary
24 COMMAND 249
A Classic Example: Menu Commands
Using COMMAND tO Supply a Service
COMMAND in Relation to Other Patterns
Summary
25 INTERPRETER 259
An INTERPRETER Example
Interpreters, Languages, and Parsers
Summary
PART V EXTENSION PATTERNS
26 INTRODUCING EXTENSIONS 273
Reuse as an Alternative to Extension
Extending by Subclassing
The Liskov Substitution Principle
Extending by Delegating
Summary
Beyond Ordinary Extension
27 DECORATOR 289
A Classic Example of DECORATOR: Streams
Function Decorators
Decorating without DECORATOR
Summary
28 ITERATOR 313
Type-Safe Collections
Iterating Over a Composite
Thread-Safe Iterators
Summary
29 VISITOR 337
Supporting VISITOR
Extending with VISITOR
VISITOR Cycles
VISITOR Controversy
Summary
PART VI APPENDIXES
A APPENDIX A: DIRECTIONS 355
B APPENDIX B: SOLUTIONS 359
C APPENDIX C: UML AT A GLANCE 441
Glossary 449
Bibliography 459
猜您喜欢