Software Architecture Design Patterns in Java: 1st Edition (Hardback) book cover

Software Architecture Design Patterns in Java

1st Edition

By Partha Kuchana

Auerbach Publications

520 pages | 223 B/W Illus.

Purchasing Options:$ = USD
Hardback: 9780849321429
pub: 2004-04-27
Currently out of stock
$98.95
x
eBook (VitalSource) : 9780429209703
pub: 2004-04-27
from $49.48


FREE Standard Shipping!

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.

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

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

  • Subject Categories

    BISAC Subject Codes/Headings:
    COM051010
    COMPUTERS / Programming Languages / General
    COM051230
    COMPUTERS / Software Development & Engineering / General