shopping cart
Call us:  800-878-7323 HELP
McAfee SECURE helps keep you safe from identity theft, credit card fraud, spyware, spam, viruses and online scams.
Interviews | June 19, 2009

Dave: IMG Jim Lynch Makes Landscape Art... Out of Text



jimlynchIf Carl Hiaasen set one of his novels on a residential stretch of boundary line between British Columbia and Washington, or if Richard Russo's characters had relatives in the Pacific Northwest, the result might be something like Jim Lynch's Border Songs. Continue »
  1. $18.16 Sale Hardcover add to wish list

    Border Songs

    Jim Lynch

Ships free on qualified orders.
$47.25
TRADE PAPER, NEW
Ships in 1 to 3 days
Add to Wishlist
available for shipping or prepaid pickup only
Qty Store Section
2 Local Warehouse Computer Languages- Java


The Design Patterns Java Workbook

by Steven John Metsker

The Design Patterns Java Workbook Cover

Synopses & Reviews

Publisher Comments:

Praise for Design Patterns Java™ Workbook

“An excellent book... Im incredibly impressed with how readable it is. I understood every single chapter, and I think any reader with any Java familiarity would. This book is going to be required reading in a lot of places, including my office.”      Joshua Engel

“Provides a new, more Java-literate way to understand the 23 GoF patterns.”      Bob Hanmer

“This book translates Design Patterns into what Java programmers need to know. It is full of short, engaging programming and design problems with solutionsmaking it easy for programmers to work through solutions and really make patterns ‘stick.”      Rebecca Wirfs-Brock

“This is one exciting book. Its approachable, readable, interesting, instructive, and just plain valuable. Itll eclipse all other books purporting to teach people the GoF patterns in Javaand perhaps any other language.”      John Vlissides

Java programmers, you now have the resource you need to harness the considerable power of design patterns. This unique book presents examples, exercises, and challenges that will help you apply design pattern theory to real-world problems. Steve Metsker's learn-by-doing approach helps you enhance your practical skills and build the confidence you need to use design patterns effectively in mission-critical applications.

Design Patterns Java™ Workbook features the twenty-three foundational design patterns introduced in the classic book Design Patterns (Addison-Wesley, 1995). In this new, hands-on workbook, the patterns are organized into five major categories: interfaces, responsibility, construction, operations, and extensions. Each category begins with a chapter that reviews and challenges your ability to apply facilities built into Java. These introductory sections are followed by chapters that explain a particular pattern in detail, demonstrate the pattern in use with UML diagrams and Java code, and provide programming problems for you to solve.

With this book you will build expertise in important areas such as:

  • Adapting domain data to Swing components
  • Creating a FACADE for Swing
  • Handling recursion in composites
  • Understanding the role of BRIDGE in Java database connectivity
  • Making the connection between Model/View/Controller and OBSERVER
  • Maintaining relational integrity with a mediator
  • Using proxies to communicate between computers
  • Letting a service provider decide which class to instantiate
  • Supporting undo operations with MEMENTO
  • Prototyping with clones
  • Using COMMAND to supply a service
  • Developing thread-safe iterators
  • Extending classes with DECORATOR and VISITOR

Solutions to the design pattern challenges appear in the back of the book, so you can compare your own work to expert approaches. A brief guide to UML explains the modeling notation, and an accompanying Web site provides all the code examples from the book.

Through the instruction and exercises offered in Design Patterns Java™ Workbook, you can fully understand the role of design patterns in Java application development, and enhance your ability to put design patterns to work.

Book News Annotation:

Metsker is a researcher and author who writes about object-oriented techniques. His workbook is written for software developers who know Java and have had some exposure to Design Patterns (Addison-Wesley, 1995), in which Erich Gamma and his colleagues presented a catalog of 23 design patterns for structuring. In this text, Metsker clearly explains each original design pattern from a Java programmer's perspective, thus enabling programmers to build confidence in their ability to recognize the patterns and to apply them in their own Java programs. Each chapter includes challenges for the reader to solve, with solutions provided in an appendix.
Annotation c. Book News, Inc., Portland, OR (booknews.com)

Synopsis:

Covering all five categories of design pattern intent - interfaces, responsibility, construction, operations and extensions - this Java-centric workbook approach aims to deepen readers' understanding and strengthen their skills.

Synopsis:

Includes bibliographical references (p. 459-462) and index.

Synopsis:

Design Patterns in Java™ gives you the hands-on practice and deep insight you need to fully leverage the significant power of design patterns in any Java software project. The perfect complement to the classic Design Patterns, this learn-by-doing workbook applies the latest Java features and best practices to all of the original 23 patterns identified in that groundbreaking text.

Drawing on their extensive experience as Java instructors and programmers, Steve Metsker and Bill Wake illuminate each pattern with real Java programs, clear UML diagrams, and compelling exercises. You'll move quickly from theory to application—learning how to improve new code and refactor existing code for simplicity, manageability, and performance.

Coverage includes

  • Using Adapter to provide consistent interfaces to clients
  • Using Facade to simplify the use of reusable toolkits
  • Understanding the role of Bridge in Java database connectivity
  • The Observer pattern, Model-View-Controller, and GUI behavior
  • Java Remote Method Invocation (RMI) and the Proxy pattern
  • Streamlining designs using the Chain of Responsibility pattern
  • Using patterns to go beyond Java's built-in constructor features
  • Implementing Undo capabilities with Memento
  • Using the State pattern to manage state more cleanly and simply
  • Optimizing existing codebases with extension patterns
  • Providing thread-safe iteration with the Iterator pattern
  • Using Visitor to define new operations without changing hierarchy classes

If you're a Java programmer wanting to save time while writing better code, this book's techniques, tips, and clear explanations and examples will help you harness the power of patterns to improve every program you write, design, or maintain.

All source code is available for download at http://www.oozinoz.com.

About the Author

Steven John Metsker is a Managing Consultant with Dominion Digital, an information technology and business process reengineering company. Steve specializes in object-oriented techniques for creating clean, powerful software, and he is the author of Building Parsers with Java™, Design Patterns Java™ Workbook, and Design Patterns in C# (all from Addison-Wesley).

William C. Wake, http://www.xp123.com , is an independent software consultant, coach, and trainer with more than twenty years of programming experience. Bill previously held positions with Capital One Financial, DMR Trecom, and VTLS, Inc. He is the author of the Refactoring Workbook and Extreme Programming Explored (both from Addison-Wesley).

Table of Contents

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.

I. NTERFACE PATTERNS.

2. Introducing Interfaces.

Ordinary Interfaces.

Interfaces and Obligations.

Placing Constants in Interfaces.

Summary.

Beyond Ordinary Interfaces.
3. Adapter.

Adapting in the Presence of Foresight.

Class and Object Adapters.

Unforeseen Adaptation.

Recognizing ADAPTER.

Summary.
4. FAÇADE.

Refactoring to FAÇADE.

Facades, Utilities, and Demos.

Summary.
5. Composite.

An Ordinary Composite.

Recursive Behavior in Composites.

Trees in Graph Theory.

Composites with Cycles.

Consequences of Cycles.

Summary.
6. Bridge.

A Classic Example of BRIDGE: Drivers.

Refactoring to BRIDGE.

A Bridge Using the List Interface.

Summary.

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.

A Classic Example: GUI Mediators.

Relational Integrity Mediators.

Summary.
11. Proxy.

A Classic Example: Image Proxies.

Image Proxies Reconsidered.

Remote Proxies.

Summary.
12. Chain of Responsibility.

Varieties of Lookup.

Refactoring to CHAIN OF RESPONSIBILITY.

Anchoring a Chain.

CHAIN OF RESPONSIBILITY without COMPOSITE.

Summary.
13. FLYWEIGHT.

Recognizing FLYWEIGHT.

Immutability.

Extracting the Immutable Part of a Flyweight.

Sharing Flyweights.

Summary.

III. CONSTRUCTION PATTERNS.

14. Introducing Construction.

Ordinary Construction.

Superclass Collaboration.

Collaboration within a Class.

Summary.

Beyond Ordinary Construction.
15. Builder.

Building from a Parser.

Building under Constraints.

Building a Counteroffer.

Summary.
16. FACTORY METHOD.

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.

Abstract Factories for Families of Objects.

Packages and Abstract Factories.

Abstract Factories for Look-and-Feel.

Summary.
18. Prototype.

Prototypes as Factories.

Prototyping with Clones.

Using Object.clone().

Summary.
19. Memento.

Memento Durability.

Applying Memento.

Persisting Mementos across Sessions.

Using Strings as Mementos.

Summary.

IV. OPERATION PATTERNS.

20. Introducing Operations.

Operations, Methods, and Algorithms.

The Mechanics of Methods.

Exceptions in Methods.

Summary.

Beyond Ordinary Operators.
21. TEMPLATE METHOD.

A Classic Example of TEMPLATE METHOD: Sorting.

Completing an Algorithm.

TEMPLATE METHOD Hooks.

Refactoring to TEMPLATE METHOD.

Summary.
22. STATE.

Modeling States.

Refactoring to STATE.

Making States Constant.

Summary.
23. STRATEGY.

Modeling Strategies.

Refactoring to STRATEGY.

Comparing STRATEGY and STATE.

Comparing STRATEGY and TEMPLATE METHOD.

Summary.
24. Command.

A Classic Example: Menu Commands.

Using COMMAND to Supply a Service.

COMMAND in Relation to Other Patterns.

Summary.
25. INTERPRETER.

An INTERPRETER Example.

Interpreters, Languages, and Parsers.

Summary.

V. EXTENSION PATTERNS.

26. Introducing Extensions.

Reuse as an Alternative to Extension.

Extending by Subclassing.

The Liskov Substitution Principle.

Extending by Delegating.

Summary.

Beyond Ordinary Extension.
27. DECORATOR.

A Classic Example of DECORATOR: Streams.

Function Decorators.

Decorating without DECORATOR.

Summary.
28. Iterator.

Type-Safe Collections.

Iterating Over a Composite.

Thread-Safe Iterators.

Summary.
29. VISITOR.

Supporting VISITOR.

Extending with VISITOR.

VISITOR Cycles.

VISITOR Controversy.

Summary.

VI. APPENDIXES.

Appendix A: Directions.

Appendix B: Solutions.

Appendix C: UML at a Glance.

Glossary.

Bibliography.

Index. 0201743973T03262002

Product Details

ISBN:
9780201743975
Subtitle:
tm Workbook [With CDROM]
Author:
Metsker, Steven John
Author:
Wake, William C.
Publisher:
Addison-Wesley Professional
Location:
Boston
Subject:
Programming Languages - General
Subject:
Programming - General
Subject:
Programming - Object Oriented Programming
Subject:
Java (Computer program language)
Subject:
Programming Languages - Java
Subject:
Java
Subject:
Programming / Object Oriented
Copyright:
Edition Description:
Paperback
Series:
The software patterns series
Series Volume:
no. 1
Publication Date:
March 2002
Binding:
Paperback
Grade Level:
Professional and scholarly
Language:
English
Illustrations:
Yes
Pages:
496
Dimensions:
10.02x7.96x1.23 in. 2.56 lbs.

Other books you might like

  1. $5.50 Used Trade Paper add to wish list
  2. $8.95 Used Trade Paper add to wish list
  3. $5.63 Used Hardcover add to wish list

    Ava's Man

    Rick Bragg

Related Aisles

  • back to top

Powell's City of Books is an independent bookstore in Portland, Oregon, that fills a whole city block with more than a million new, used, and out of print books. Shop those shelves — plus literally millions more books, DVDs, and eBooks — here at Powells.com.