Software experts agree: the most difficult aspect of building software is not coding; it is the decisions the designer makes in the early stages. Those decisions live with the system for the rest of its lifetime. Good designs beget good software. Bad designs beget trouble. Designers are faced with a tough question: how do they know whether their designs are good or bad? Design patterns can provide valid judgment criteria for software designers. While a great deal of effort has been devoted to discovering new design patterns, very little effort has been spent on developing a process for "gluing" or "composing" design patterns to better develop software applications. This book specifically addresses this need, and explains the Patte...