Software Architecture Design Patterns in Java

Book description

This book presents a detailed explanation of how to implement design patterns and develop software architectures by using patterns. It provides in-depth examples in Java and guides systems architects through the design process by answering when, why, and how to implement specific patterns. More than 40 examples in Java allow systems architects and developers to get their hands on implementing design patterns. In addition to using Java to illustrate how to implement patterns, Software Architecture Design Patterns in Java provides UML diagrams to illustrate pattern design. A concluding case study ties together the range of patterns presented and shows how to implement a Web hosting service.

Table of contents

  1. COVER PAGE
  2. TITLE PAGE
  3. COPYRIGHT PAGE
  4. DEDICATION
  5. FOREWORD
  6. ABOUT THE AUTHOR
  7. ACKNOWLEDGMENTS
  8. I. AN INTRODUCTION TO DESIGN PATTERNS
    1. 1. DESIGN PATTERNS: ORIGIN AND HISTORY
      1. ARCHITECTURAL TO SOFTWARE DESIGN PATTERNS
      2. WHAT IS A DESIGN PATTERN?
      3. MORE ABOUT DESIGN PATTERNS
      4. ABOUT THIS BOOK
  9. II. UNIFIED MODELING LANGUAGE (UML)
    1. 2. UML: A QUICK REFERENCE
      1. STRUCTURE DIAGRAMS
      2. BEHAVIOR DIAGRAMS
      3. MODEL MANAGEMENT DIAGRAMS
      4. CLASS DIAGRAMS
      5. SEQUENCE DIAGRAMS
  10. III. BASIC PATTERNS
    1. 3. INTERFACE
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    2. 4. ABSTRACT PARENT CLASS
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    3. 5. PRIVATE METHODS
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    4. 6. ACCESSOR METHODS
      1. DESCRIPTION
      2. ACCESSOR METHOD NOMENCLATURE
      3. EXAMPLE
      4. DIRECT REFERENCE VERSUS ACCESSOR METHODS
      5. PRACTICE QUESTIONS
    5. 7. CONSTANT DATA MANAGER
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    6. 8. IMMUTABLE OBJECT
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    7. 9. MONITOR
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
  11. IV. CREATIONAL PATTERNS
    1. 10. FACTORY METHOD
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    2. 11. SINGLETON
      1. DESCRIPTION
      2. WHO SHOULD BE RESPONSIBLE?
      3. EXAMPLE
      4. PRACTICE QUESTIONS
    3. 12. ABSTRACT FACTORY
      1. DESCRIPTION
      2. ABSTRACT FACTORY VERSUS FACTORY METHOD
      3. EXAMPLE I
      4. EXAMPLE II
      5. PRACTICE QUESTIONS
    4. 13. PROTOTYPE
      1. DESCRIPTION
      2. SHALLOW COPY VERSUS DEEP COPY
      3. EXAMPLE I
      4. EXAMPLE II
      5. PRACTICE QUESTIONS
    5. 14. BUILDER
      1. DESCRIPTION
      2. EXAMPLE I
      3. EXAMPLE II
      4. EXAMPLE III
      5. PRACTICE QUESTIONS
  12. V. COLLECTIONAL PATTERNS
    1. 15. COMPOSITE
      1. DESCRIPTION
      2. EXAMPLE
      3. DESIGN APPROACH I
      4. DESIGN APPROACH II
      5. PRACTICE QUESTIONS
    2. 16. ITERATOR
      1. DESCRIPTION
      2. ITERATORS IN JAVA
      3. FILTERED ITERATORS
      4. INTERNAL VERSUS EXTERNAL ITERATORS
      5. EXAMPLE: INTERNAL ITERATOR
      6. CLIENT/CONTAINER INTERACTION
      7. EXAMPLE: EXTERNAL FILTERED ITERATOR
      8. PRACTICE QUESTIONS
    3. 17. FLYWEIGHT
      1. DESCRIPTION
      2. HOW TO DESIGN A FLYWEIGHT IN JAVA
      3. DESIGN HIGHLIGHTS
      4. EXAMPLE
      5. DESIGN APPROACH I
      6. DESIGN APPROACH II
      7. PRACTICE QUESTIONS
    4. 18. VISITOR
      1. DESCRIPTION
      2. DEFINING NEW OPERATIONS ON THE OBJECT COLLECTION
      3. ADDING OBJECTS OF A NEW TYPE TO THE COLLECTION
      4. EXAMPLE
      5. DESIGN APPROACH I
      6. DESIGN APPROACH II
      7. DESIGN APPROACH III (COMPOSITE PATTERN)
      8. DESIGN APPROACH IV (THE VISITOR PATTERN)
      9. DEFINING A NEW OPERATION ON THE ORDER OBJECT COLLECTION
      10. ADDING A NEW ORDER TYPE TO THE COLLECTION
      11. PRACTICE QUESTIONS
  13. VI. STRUCTURAL PATTERNS
    1. 19. DECORATOR
      1. DESCRIPTION
      2. CHARACTERISTICS OF A DECORATOR
      3. EXAMPLE
      4. CONCRETE LOGGER DECORATORS
      5. ADDING A NEW MESSAGE LOGGER
      6. ADDING A NEW DECORATOR
      7. PRACTICE QUESTIONS
    2. 20. ADAPTER
      1. DESCRIPTION
      2. CLASS ADAPTERS VERSUS OBJECT ADAPTERS
      3. EXAMPLE
      4. ADDRESS ADAPTER AS AN OBJECT ADAPTER
      5. PRACTICE QUESTIONS
    3. 21. CHAIN OF RESPONSIBILITY
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    4. 22. FAÇADE
      1. DESCRIPTION
      2. EXAMPLE
      3. IMPORTANT NOTES
      4. PRACTICE QUESTIONS
    5. 23. PROXY
      1. DESCRIPTION
      2. PROXY VERSUS OTHER PATTERNS
      3. RMI: A QUICK OVERVIEW
      4. RMI AND PROXY PATTERN
      5. EXAMPLE
      6. ADDITIONAL NOTES
      7. PRACTICE QUESTIONS
    6. 24. BRIDGE
      1. DESCRIPTION
      2. EXAMPLE
      3. BRIDGE PATTERN VERSUS ADAPTER PATTERN
      4. PRACTICE QUESTIONS
    7. 25. VIRTUAL PROXY
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    8. 26. COUNTING PROXY
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    9. 27. AGGREGATE ENFORCER
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    10. 28. EXPLICIT OBJECT RELEASE
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    11. 29. OBJECT CACHE
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
  14. VII. BEHAVIORAL PATTERNS
    1. 30. COMMAND
      1. DESCRIPTION
      2. EXAMPLE I
      3. EXAMPLE II
      4. PRACTICE QUESTIONS
    2. 31. MEDIATOR
      1. DESCRIPTION
      2. MEDIATOR VERSUS FAÇADE
      3. EXAMPLE I
      4. EXAMPLE II
      5. PRACTICE QUESTIONS
    3. 32. MEMENTO
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    4. 33. OBSERVER
      1. DESCRIPTION
      2. ADDING NEW OBSERVERS
      3. EXAMPLE
      4. PRACTICE QUESTIONS
    5. 34. INTERPRETER
      1. DESCRIPTION
      2. EXAMPLE
      3. ADDITIONAL NOTES
      4. PRACTICE QUESTIONS
    6. 35. STATE
      1. DESCRIPTION
      2. STATEFUL OBJECT: AN EXAMPLE
      3. EXAMPLE
      4. PRACTICE QUESTIONS
    7. 36. STRATEGY
      1. DESCRIPTION
      2. STRATEGIES VERSUS OTHER ALTERNATIVES
      3. STRATEGY VERSUS STATE
      4. EXAMPLE
      5. PRACTICE QUESTIONS
    8. 37. NULL OBJECT
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    9. 38. TEMPLATE METHOD
      1. DESCRIPTION
      2. EXAMPLE
      3. ADDITIONAL NOTES
      4. PRACTICE QUESTIONS
    10. 39. OBJECT AUTHENTICATOR
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    11. 40. COMMON ATTRIBUTE REGISTRY
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
  15. VIII. CONCURRENCY PATTERNS
    1. 41. CRITICAL SECTION
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    2. 42. CONSISTENT LOCK ORDER
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    3. 43. GUARDED SUSPENSION
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
    4. 44. READ-WRITE LOCK
      1. DESCRIPTION
      2. EXAMPLE
      3. PRACTICE QUESTIONS
  16. IX. CASE STUDY
    1. 45. CASE STUDY: A WEB HOSTING COMPANY
      1. OBJECTIVE
      2. KPS HOSTING SOLUTIONS: A BRIEF OVERVIEW
      3. REQUIREMENTS
      4. BUSINESS OBJECTS AND THEIR ASSOCIATION
      5. FRAMEWORK FOR APPLICATION PROCESSING
      6. CONCLUSION
  17. X. APPENDICES
    1. APPENDIX A: LIST OF DESIGN PATTERNS
    2. APPENDIX B: REFERENCES
      1. WEB REFERENCES

Product information

  • Title: Software Architecture Design Patterns in Java
  • Author(s): Partha Kuchana
  • Release date: April 2004
  • Publisher(s): Auerbach Publications
  • ISBN: 9781135506117