1st Edition

Software Architecture Design Patterns in Java




ISBN 9780849321429
Published April 27, 2004 by Auerbach Publications
516 Pages - 223 B/W Illustrations

USD $110.00

Prices & shipping based on shipping country


Preview

Book Description

Software engineering and computer science students need a resource that explains how to apply design patterns at the enterprise level, allowing them to design and implement systems of high stability and quality.

Software Architecture Design Patterns in Java is a detailed explanation of how to apply design patterns and develop software architectures. It provides in-depth examples in Java, and guides students by detailing when, why, and how to use specific patterns.

This textbook presents 42 design patterns, including 23 GoF patterns. Categories include: Basic, Creational, Collectional, Structural, Behavioral, and Concurrency, with multiple examples for each. The discussion of each pattern includes an example implemented in Java. The source code for all examples is found on a companion Web site.

The author explains the content so that it is easy to understand, and each pattern discussion includes Practice Questions to aid instructors. The textbook concludes with a case study that pulls several patterns together to demonstrate how patterns are not applied in isolation, but collaborate within domains to solve complicated problems.

Table of Contents

AN INTRODUCTION TO DESIGN PATTERNS
Design Patterns: Origin and History
Architectural to Software Design Patterns
What is a Design Pattern?
More about Design Patterns
About This Book

UNIFIED MODELING LANGUAGE (UML)
UML: A Quick Reference
Class Diagrams
Sequence diagrams

BASIC PATTERNS
Interface
Description
Example
Practice Questions
Abstract Parent Class
Description
Example
Practice Questions
Private Methods
Description
Example
Practice Questions
Accessor Methods
Description
Accessor Method Nomenclature
Example
Direct Reference versus Accessor Methods
Practice Questions
Constant Data Manager
Description
Example
Practice Questions
Immutable Object
Description
Example
Practice Questions
Monitor
Description
Example
Practice Questions

CREATIONAL PATTERNS
Factory Method
Description
Example
Practice Questions
Singleton
Description
Who Should Be Responsible?
Example
Practice Questions
Abstract Factory
Description
Abstract Factory versus Factory Method
Example I
Example II
Practice Questions
Prototype
Description
Shallow Copy versus Deep Copy
Example I
Example II
Practice Questions
Builder
Description
Example I
Example II
Example III
Practice Questions

COLLECTIONAL PATTERNS
Composite
Description
Example
Design Approach I
Design Approach II
Practice Questions
Iterator
Description
Iterators in Java
Filtered Iterators
Internal versus External Iterators
Example: Internal Iterator
Client/Container Interaction
Example: External Filtered Iterator
Practice Questions
Flyweight
Description
How to Design a Flyweight in Java
Design Highlights
Example
Design Approach I
Design Approach II
Practice Questions
Visitor
Description
Defining new operations on the object collection
Adding objects of a new type to the collection
Example
Design Approach I
Design Approach II
Design Approach III (Composite Pattern)
Design Approach IV (The Visitor Pattern)
Defining a new operation on the order object collection
Adding a new order type to the collection
Practice Questions

STRUCTURAL PATTERNS
Decorator
Description
Characteristics of a Decorator
Example
Concrete Logger Decorators
Adding a New Message Logger
Adding a New Decorator
Practice Questions

Adapter
Description
Class Adapters versus Object Adapters
Example
Address Adapter as an Object Adapter
Practice Questions
Chain of Responsibility
Description
Example
Practice Questions
Façade
Description
Example
Important Notes
Practice Questions
Proxy
Description
Proxy versus Other Patterns
RMI: A Quick Overview
RMI and Proxy Pattern
Example
Additional Notes
Practice Questions
Bridge
Description
Example
Bridge Pattern versus Adapter Pattern
Practice Questions
Virtual Proxy
Description
Example
Practice Questions
Counting Proxy
Description
Example
Practice Questions
Aggregate Enforcer
Description
Example
Practice Questions
Explicit Object Release
Description
The Finally Statement
Example
Practice Questions
Object Cache
Description
Example
Practice Questions

BEHAVIORAL PATTERNS
Command
Description
Example I
Example II
Practice Questions
Mediator
Description
Mediator versus Façade
Example I
Example II
Practice Questions
Mement


  • Description
    Example
    Practice Questions
    Observer
    Description
    Adding New Observers
    Example
    Practice Questions
    Interpreter
    Description
    Example
    Additional Notes
    Practice Questions
    State
    Description
    Stateful Object: An Example
    Example
    Practice Questions
    Strategy
    Description
    Strategies versus Other Alternatives
    Strategy versus State
    Example
    Practice Questions
    Null Object
    Description
    Example
    Practice Questions
    Template Method
    Description
    Example
    Additional Notes
    Practice Questions
    Object Authenticator
    Description
    Example
    Practice Questions
    Common Attribute Registry
    Description
    Example
    Practice Questions

    CONCURRENCY PATTERNS
    Critical Section
    Description
    Example
    Practice Questions
    Consistent Lock Order
    Description
    Example
    Practice Questions
    Guarded Suspension
    Description
    Example
    Practice Questions
    Read-Write Lock
    Description
    Example
    Practice Questions

    CASE STUDY
    Case Study: A Web Hosting Company
    Objective
    KPS Hosting Solutions: A Brief Overview
    Requirements
    Business Objects and their Association
    Framework for Application Processing
    Conclusion

    APPENDIXES
    List of Design Patterns
    References
  • ...
    View More

    Reviews

    "Kuchana … does a good job contrasting patterns that may seem similar to the novice. … This is a useful addition to a collection on software design patterns. "
    - CHOICE, Feb. 2005, Vol. 42, No. 06

    "Why am I so pleased with this book? What makes it any different than other design pattern books? Well, first of all the volume is huge. Kuchana's book covers all the original Gang of Four patterns plus another 20 or so patterns, including a couple of multithreading related patterns. Second, the text itself is very readable and doesn't cling too much on fancy words. The explanations are concise and to the point…All in all a very good choice for filling the gaping design patterns encyclopedia slot in your bookshelf. Highly recommended."
    "Partha Kuchana is an experienced Enterprise Systems Architect. He understands that patterns are not about things that are just good ideas, but that patterns are about capturing knowledge bred from experience. This hard-won knowledge is what Partha is sharing with readers of his book…Keep it handy for all those 'How do I do this in Java?' questions where you wish you had an expert in the office next door to provide answers. This book is the next best thing."
    Linda Rising, from The Foreword