Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Applied Java™ Patterns - Stephen Stelting, Olav Maassen.pdf
Скачиваний:
198
Добавлен:
24.05.2014
Размер:
2.84 Mб
Скачать

Front Matter

Table of Contents

About the Author

Applied Java™ Patterns

Stephen Stelting

Olav Maassen

Publisher: Prentice Hall PTR

First Edition December 01, 2001

ISBN: 0-13-093538-7, 598 pages

Pattern-based solutions for every stage of the development lifecycle Documents 30 patterns, including the 23 core patterns for the Sun Certified Enterprise Architect exam.

Increasingly, developers are recognizing the value of design patterns in helping to create more robust, scalable, reliable, and maintainable applications. Now there’s a book that can help you bring the power of patterns to your Java-based projects.

Sun Microsystems experts Steve Stelting and Olav Maassen bring together today’s best pattern-based techniques and demonstrate pattern use for a variety of business systems. This practical guide features proven techniques for all types of patterns, from system architecture to single classes.

After briefly reviewing the fundamentals of design patterns, the authors describe how these patterns can be applied effectively to the Java platform. Next, they provide a pattern catalog, organized into four major categories—the creational, behavioral, structural, and system patterns. In addition, they identify patterns and present techniques for pattern use in the core Java APIs as well as the APIs for distributed development.

Applied Java Patterns also features a section on pattern use in systems built with J2EE and JINI technologies, and coverage of the servlet, JSP, EJB, and JavaSpaces APIs.

 

 

Y

Without a doubt, this accessible and up-to-date guide can help you enhance your

 

 

L

Java platform programming skills.

 

 

F

 

 

M

 

A

E

 

T

 

 

TEAM FLY PRESENTS

1

Table of Content

 

Table of Content ......................................................................................................................................................................................

2

Preface ......................................................................................................................................................................................................

4

Why We Wrote This Book ...................................................................................................................................................................

4

What This Book Is About .....................................................................................................................................................................

4

Who Should Read This Book ...............................................................................................................................................................

4

Conventions Used.................................................................................................................................................................................

4

How This Book Is Organized ...............................................................................................................................................................

5

How to Use This Book .........................................................................................................................................................................

5

Companion Web Site............................................................................................................................................................................

5

Acknowledgments ................................................................................................................................................................................

5

Why Patterns?.......................................................................................................................................................................................

6

History of the Patterns Movement ........................................................................................................................................................

7

Basic Concepts in Patterns....................................................................................................................................................................

8

Software Abstraction and Reuse...........................................................................................................................................................

9

Summary.............................................................................................................................................................................................

10

Part I: Commonly Used Patterns .........................................................................................................................................................

11

Chapter 1. Creational Patterns ............................................................................................................................................................

11

Introduction to Creational Patterns .....................................................................................................................................................

11

Abstract Factory .................................................................................................................................................................................

12

Builder ................................................................................................................................................................................................

17

Factory Method...................................................................................................................................................................................

23

Prototype.............................................................................................................................................................................................

27

Singleton.............................................................................................................................................................................................

31

Chapter 2. Behavioral Patterns............................................................................................................................................................

34

Introduction to Behavioral Patterns ....................................................................................................................................................

34

Chain of Responsibility ......................................................................................................................................................................

35

Command............................................................................................................................................................................................

41

Interpreter ...........................................................................................................................................................................................

46

Iterator ................................................................................................................................................................................................

52

Mediator..............................................................................................................................................................................................

57

Memento.............................................................................................................................................................................................

63

State ....................................................................................................................................................................................................

74

Strategy...............................................................................................................................................................................................

81

Visitor .................................................................................................................................................................................................

86

Template Method................................................................................................................................................................................

93

Chapter 3. Structural Patterns.............................................................................................................................................................

97

Introduction to Structural Patterns......................................................................................................................................................

97

Adapter ...............................................................................................................................................................................................

98

Bridge ...............................................................................................................................................................................................

103

Composite.........................................................................................................................................................................................

108

Decorator ..........................................................................................................................................................................................

114

Facade...............................................................................................................................................................................................

120

Flyweight ..........................................................................................................................................................................................

125

Half-Object Plus Protocol (HOPP) ...................................................................................................................................................

129

Proxy.................................................................................................................................................................................................

134

Chapter 4. System Patterns ................................................................................................................................................................

139

Introduction to System Patterns........................................................................................................................................................

139

Model-View-Controller (MVC) .......................................................................................................................................................

140

Session..............................................................................................................................................................................................

148

Worker Thread..................................................................................................................................................................................

155

Callback............................................................................................................................................................................................

160

Successive Update ............................................................................................................................................................................

167

Transaction .......................................................................................................................................................................................

178

Part II: Patterns in the Java Programming Language.....................................................................................................................

183

Chapter 5. Introduction to Java Programming Language Patterns...............................................................................................

183

Chapter 6. Java Core APIs .................................................................................................................................................................

184

Event Handling .................................................................................................................................................................................

184

JavaBeans .........................................................................................................................................................................................

186

AWT and Swing – The Graphical User Interface APIs....................................................................................................................

188

Collections Framework.....................................................................................................................................................................

192

Input-Output (I/O) ............................................................................................................................................................................

195

Reflection..........................................................................................................................................................................................

197

Chapter 7. Distributed Technologies .................................................................................................................................................

199

2

Java Naming and Directory Interface (JNDI)...................................................................................................................................

199

JDBC ................................................................................................................................................................................................

201

RMI...................................................................................................................................................................................................

203

CORBA ............................................................................................................................................................................................

205

Chapter 8. Jini and J2EE Architectures............................................................................................................................................

207

Jini ....................................................................................................................................................................................................

207

Java 2, Enterprise Edition (J2EE) .....................................................................................................................................................

210

Servlets and JSPs ..............................................................................................................................................................................

213

Enterprise JavaBeans ........................................................................................................................................................................

215

Appendix A. Full Code Examples ......................................................................................................................................................

218

System Requirements .......................................................................................................................................................................

218

Creational Pattern Code Examples ...................................................................................................................................................

219

Abstract Factory...........................................................................................................................................................................

219

Builder .........................................................................................................................................................................................

222

Factory Method............................................................................................................................................................................

228

Prototype......................................................................................................................................................................................

232

Singleton ......................................................................................................................................................................................

234

Behavioral Pattern Code Examples ..................................................................................................................................................

238

Chain of Responsibility................................................................................................................................................................

238

Command.....................................................................................................................................................................................

243

Interpreter.....................................................................................................................................................................................

248

Iterator..........................................................................................................................................................................................

253

Mediator.......................................................................................................................................................................................

257

Memento ......................................................................................................................................................................................

262

Observer.......................................................................................................................................................................................

266

State .............................................................................................................................................................................................

270

Strategy ........................................................................................................................................................................................

277

Visitor ..........................................................................................................................................................................................

282

Template Method .........................................................................................................................................................................

288

Structural Pattern Code Examples ....................................................................................................................................................

291

Adapter.........................................................................................................................................................................................

291

Bridge ..........................................................................................................................................................................................

293

Composite ....................................................................................................................................................................................

296

Decorator .....................................................................................................................................................................................

302

Facade ..........................................................................................................................................................................................

306

Flyweight .....................................................................................................................................................................................

312

Half-Object Plus Protocol (HOPP) ..............................................................................................................................................

316

Proxy............................................................................................................................................................................................

322

System Pattern Code Examples ........................................................................................................................................................

327

Model-View-Controller (MVC)...................................................................................................................................................

327

Session .........................................................................................................................................................................................

331

Worker Thread.............................................................................................................................................................................

338

Callback .......................................................................................................................................................................................

344

Successive Update .......................................................................................................................................................................

349

Router ..........................................................................................................................................................................................

354

Transaction...................................................................................................................................................................................

360

Appendix B...........................................................................................................................................................................................

367

Pattern Origins..................................................................................................................................................................................

367

Creational Patterns............................................................................................................................................................................

367

Behavioral Patterns...........................................................................................................................................................................

367

Structural Patterns.............................................................................................................................................................................

367

System Patterns.................................................................................................................................................................................

367

3