Patterns - 1 home - top of the page -

Overview of Design Patterns

The 41 patterns in volume 1 are organized into categories as shown in the following table:
 Fundamental Design Patterns Delegation
Interface
Proxy
Immutable
Marker Interface
Download Visio 5.0 Drawings
 Creational Patterns Abstract Factory
Builder
Factory Method
Prototype
Singleton
Object Pool
Download Visio 5.0 Drawings
 Partitioning Patterns Layered Initialization
Filter
Composite
Download Visio 5.0 Drawings
 Structural Patterns Adapter
Iterator
Bridge
Façade
Flyweight
Dynamic Linkage
Virtual Proxy
Decorator
Cache Management
Download Visio 5.0 Drawings
 Behavioral Patterns Chain of Responsibility
Command
Little Language / Interpreter
Mediator
Snapshot
Observer
State
Null Object
Strategy
Template Method
Visitor
Download Visio 5.0 Drawings
 Concurrency Patterns Single Threaded Execution
Guarded Suspension
Balking
Scheduler
Read/Write Lock
Producer-Consumer
Two-Phase Termination
Download Visio 5.0 Drawings

Fundamental Design Patterns


 
Patterns - 2 home - top of the page -

Preview of Patterns in Java Volume 2

The 50 patterns in volume 2 are organized into categories as shown in the following table:
 
GRASP Patterns Controller
Creator
Expert
Law of Demeter
Low Coupling/High Cohesion
Polymorphism
Pure Fabrication
GUI Design Patterns Conversational Text 
Direct Manipulation
Ephemeral Feedback
Explorable Interface
Form
Disabled Irrelevant Things
Interaction Style
Limited Selection Size
Selection
Step-by-Step Instructions
Supplementary Window
Window per Task
Organizational Coding Patterns Accessor Method Name
Anonymous Adapter
Checked vs. Unchecked Exceptions
Conditional Compilation
Composed Method
Convert Exceptions
Define Constants in Interfaces
Extend Super
Intention Revealing Method
ServerSocket
Client Socket
Switch
Symbolic Constant Name
Optimization Coding Patterns Double Checked Locking 
Hashed Adapter Objects
Lazy Initialization
Lookup Table
Loop Unrolling
Robustness Coding Patterns Assertion Testing
Copy Mutable Parameters
Guaranteed Cleanup
Maximize Privacy
Return New Objects from Accessor
Testing Patterns Acceptance Testing
Black Box Testing
Clean Room Testing
Integration Testing
Regression Testing
System Testing
Unit Testing
White Box Testing
If you have any suggestions about this page or would like to discuss a pattern with its author, send e-mail to  mgrand@mindspring.com

GRASP Patterns

GRASP is an acronym for General Responsibility Assignment Software Patterns. GRASP Patterns provide guidance for assigning responsibilities to classes and, to a limited extent, determining the classes that will be in a design.

This book discusses GRASP patterns as they are applied to object oriented design. Most GRASP patterns apply equally well to business process reengineering.

During analysis, when you are building a conceptual model of an organization that has more than one way to do something, GRASP patterns can provide guidance in selecting paths through the organization to include in the conceptual model.


GUI Design Patterns


Organizational Coding Patterns


Code Optimization Patterns


Robustness Coding Patterns


Testing Patterns

Return to Mark Grand's home page.
 
 
Patterns - 3 home - top of the page -

Preview of Patterns in Java Volume 3

The intended focus is design patterns for the enterprise (work in progress).
 
 
Transaction Patterns ACID Transaction
Audit Trail
Composite Transaction
Two Phase Commit
Distributed Architecture Patterns Demilitarized Zone
Mobile Agent 
Object Replication
Object Request Broker
Process Pair
Prompt Repair
Redundant Independent Objects
Shared Object
Distributed Computing Patterns Connection Multiplexing
Heartbeat 
Heavyweight/Lightweight Object
Mailbox
Object Identifier
Protection Proxy
Publish-Subscribe
Registry
Retransmission
Concurrency Patterns Cache Consistency
Deep Transaction Nesting
Lock File
Optimistic Concurrency
Session Object
Static Locking Order
Thread Pool 
Temporal Patterns Temporal Property
Time Server
Versioned Object
Database Patterns CRUD
Persistence Layer
SQL Code Description 
Attribute Mapping Methods 
Type Conversion 
Change Manager 
Object ID Manager 
Transaction Manager 
Connection Manager 
Table Manager 
Database Authenticates Program 
Represent Relational Database Tables as Objects 
Represent Objects as Relational Database Tables

Transaction Patterns

Distributed Architecture Patterns

Distributed Computing Patterns

 Concurrency Patterns

Related patterns are

Temporal Patterns

  • Versioned Object

  • You may need to access pervious or future states of an object. When an object gets a new state, keep both the object’s new state and its previous states. Identify the states by a timestamp or a version number. Allow access to a specific state of an object by identifying its timestamp or version number.

    Related patterns are

  • Temporal Property

  • The values of an object’s attributes may change over time. They usually change independently of each other. Keep historical values of attributes in a way that allows clients to get the effective value of a particular attribute as of a particular time.

    Related patterns are

    Database Patterns