Design Patterns Java™ Workbook
Steven John Metsker

ISBN-10: 0201743973
ISBN-13: 9780201743975

Publisher: Addison-Wesley Professional
Copyright: 2002
Format: Paper; 496 pp
Published: 03/25/2002

Suggested retail price: $49.99
Buy from myPearsonStore

Finally, a companion to the seminal book, Design Patterns, 0-201-63361-2, that allows students to learn patterns using Java as opposed to C++, which was used in the original work. By working through the challenges presented in Design Patterns Java™ Workbook, the student will learn to recognize and apply a large portion of the accumulated wisdom of the software community. The author uses a workbook approach because he believes that students will not truly learn the material by reading it, but by “doing it.” The accompanying CD-ROM will include all code examples included in the book as well as some bonus code examples not found in the book. As the title suggests, all samples will be in Java.



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

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).



Praise for Design Patterns Java™ Workbook

“An excellent book... I’m 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 solutions—making it easy for programmers to work through solutions and really make patterns ‘stick.’”

     —Rebecca Wirfs-Brock

“This is one exciting book. It’s approachable, readable, interesting, instructive, and just plain valuable. It’ll eclipse all other books purporting to teach people the GoF patterns in Java—and 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.



View a Sample Chapter PDF: /samplechapter/0201743973.pdf

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, contact your Pearson Higher Education representative for pricing and ordering information.

This title is a member of the Software Patterns Series, which also contains the titles below . You can also visit the Software Patterns Series page.

  • 0321247140Design Patterns Explained: A New Perspective on Object-Oriented Design, 2/E
    Shalloway & Trott
    © 2005 | Addison-Wesley Professional | Paper; 480 pages | Instock
    ISBN-10: 0321247140 | ISBN-13: 9780321247148
    Brief Description | Buy from myPearsonStore

  • 0201743973Design Patterns Java™ Workbook
    Metsker
    © 2002 | Addison-Wesley Professional | Paper; 496 pages | Instock
    ISBN-10: 0201743973 | ISBN-13: 9780201743975
    Brief Description | Buy from myPearsonStore

  • 0201184621The Design Patterns Smalltalk Companion
    Alpert, Brown & Woolf
    © 1998 | Addison-Wesley Professional | Paper; 464 pages | Instock
    ISBN-10: 0201184621 | ISBN-13: 9780201184624
    Brief Description | Buy from myPearsonStore

  • 0321126971Design Patterns in C#
    Metsker
    © 2004 | Addison-Wesley Professional | Cloth; 480 pages | Instock
    ISBN-10: 0321126971 | ISBN-13: 9780321126979
    Brief Description | Buy from myPearsonStore

  • 0321333020Design Patterns in Java™, 2/E
    Metsker & Wake
    © 2006 | Addison-Wesley Professional | Cloth; 480 pages | Instock
    ISBN-10: 0321333020 | ISBN-13: 9780321333025
    Buy from myPearsonStore

  • 0321630483Design Patterns in Java™, Safari, 2/E
    Metsker & Wake
    © 2006 | Addison-Wesley Professional | On-line Supplement; 480 pages | Estimated Availability: 06/15/2009
    ISBN-10: 0321630483 | ISBN-13: 9780321630483
    URL: http://safari.informit.com


  • 0201432935Pattern Hatching: Design Patterns Applied
    Vlissides
    © 1998 | Addison-Wesley Professional | Paper; 192 pages | Instock
    ISBN-10: 0201432935 | ISBN-13: 9780201432930
    Brief Description | Buy from myPearsonStore

  • 0321228111Patterns for Parallel Programming
    Mattson, Sanders & Massingill
    © 2005 | Addison-Wesley Professional | Cloth; 384 pages | Instock
    ISBN-10: 0321228111 | ISBN-13: 9780321228116
    Buy from myPearsonStore

  • 0201741172Software Configuration Management Patterns: Effective Teamwork, Practical Integration
    Berczuk & Appleton
    © 2003 | Addison-Wesley Professional | Paper; 256 pages | Instock
    ISBN-10: 0201741172 | ISBN-13: 9780201741179
    Buy from myPearsonStore

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students, browse our available packages below, or contact your Pearson Higher Education representative to create your own package.



Copyright ©2008 Pearson Education. All rights reserved. Legal Notice | Privacy Policy | Permissions