Software
Architecture
Design Patterns
in Java
© 2004 by CRC Press LLC
The Complete Project Management
Office Handbook
Gerard M. Hill
0-8493-2173-5
Complex IT Project Management: 16 Steps
to Success
Peter Schulte
0-8493-1932-3
Creating Components: Object Oriented,
Concurrent, and Distributed Computing
in Java
Charles W. Kann
0-8493-1499-2
Dynamic Software Development:
Manging Projects in Flux
Timothy Wells
0-8493-129-2
The Hands-On Project Office: Guaranteeing
ROI and On-Time Delivery
Richard M. Kesner
0-8493-1991-9
Interpreting the CMMI®: A Process
Improvement Approach
Margaret Kulpa and Kent Johnson
0-8493-1654-5
Introduction to Software Engineering
Ronald Leach
0-8493-1445-3
ISO 9001:2000 for Software and Systems
Providers: An Engineering Approach
Robert Bamford and William John Deibler II
0-8493-2063-1
The Laws of Software Process:
A New Model for the Production
and Management of Software
Phillip G. Armour
0-8493-1489-5
Real Process Improvement Using
the CMMI®
Michael West
0-8493-2109-3
Six Sigma Software Development
Christine Tanytor
0-8493-1193-4
Software Architecture Design Patterns
in Java
Partha Kuchana
0-8493-2142-5
Software Configuration Management
Jessica Keyes
0-8493-1976-5
Software Engineering for Image Processing
Phillip A. Laplante
0-8493-1376-7
Software Engineering Handbook
Jessica Keyes
0-8493-1479-8
Software Engineering Measurement
John C. Munson
0-8493-1503-4
Software Engineering Processes: Principles
and Applications
Yinxu Wang, Graham King, and Saba Zamir
0-8493-2366-5
Software Metrics: A Guide to Planning,
Analysis, and Application
C.R. Pandian
0-8493-1661-8
Software Testing: A Craftsman’s Approach,
2e
Paul C. Jorgensen
0-8493-0809-7
Software Testing and Continuous Quality
Improvement, Second Edition
William E. Lewis
0-8493-2524-2
IS Management Handbook, 8th Edition
Carol V. Brown and Heikki Topi, Editors
0-8493-1595-9
Lightweight Enterprise Architectures
Fenix Theuerkorn
0-9493-2114-X
AUERBACH PUBLICATIONS
www.auerbach-publications.com
To Order Call: 1-800-272-7737 • Fax: 1-800-374-3401
E-mail: orders@crcpress.com
Other CRC/Auerbach Publications in Software Development,
Software Engineering, and Project Management
© 2004 by CRC Press LLC
AUERBACH PUBLICATIONS
A CRC Press Company
Boca Raton London New York Washington, D.C.
Software
Architecture
Design Patterns
in Java
Partha Kuchana
© 2004 by CRC Press LLC
This book contains information obtained from authentic and highly regarded sources. Reprinted material is quoted
with permission, and sources are indicated. A wide variety of references are listed. Reasonable efforts have been
made to publish reliable data and information, but the author and the publisher cannot assume responsibility for the
validity of all materials or for the consequences of their use.
Neither this book nor any part may be reproduced or transmitted in any form or by any means, electronic or
mechanical, including photocopying, microfilming, and recording, or by any information storage or retrieval system,
without prior permission in writing from the publisher.
The consent of CRC Press LLC does not extend to copying for general distribution, for promotion, for creating new
works, or for resale. Specific permission must be obtained in writing from CRC Press LLC for such copying.
Direct all inquiries to CRC Press LLC, 2000 N.W. Corporate Blvd., Boca Raton, Florida 33431.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used only for
identification and explanation, without intent to infringe.
Visit the Auerbach Publications Web site at www.auerbach-publications.com
© 2004 by CRC Press LLC
Auerbach is an imprint of CRC Press LLC
No claim to original U.S. Government works
International Standard Book Number 0-8493-2142-5
Library of Congress Card Number 2003070897
Printed in the United States of America 1 2 3 4 5 6 7 8 9 0
Printed on acid-free paper
Library of Congress Cataloging-in-Publication Data
Kuchana, Partha.
Software architecture design patterns in Java / Partha Kuchana.
p. cm.
Includes bibliographical references and index.
ISBN 0-8493-2142-5 (alk. paper)
1. Java (Computer program language) 2. Computer Software. 3. Computer architecture.
4. Software patterns. I. Title.
QA76.73.J38K83 2004
005.13′3—dc22 2003070897
© 2004 by CRC Press LLC