Design Patterns Explained, Second Edition is a simple, clear, and practical introduction to patterns. Using dozens of new C# and updated Java examples, it shows students how to use patterns to design, develop, and deliver software far more effectively. Students should read this book before they they try and tackle Gamma's well-known work, Design Patterns. The book starts with a complete overview of the fundamental principles of patterns, and the role of object-oriented analysis and design in contemporary software development. Then, using easy-to-understand sample code, Alan Shalloway and James Trott illuminate dozens of today's most useful patterns: their underlying concepts, advantages, tradeoffs, implementation techniques, and pitfalls to avoid. Many patterns are accompanied by UML diagrams. Building on their best-selling First Edition, Shalloway and Trott have thoroughly updated this book to reflect new software design trends, patterns, and implementation techniques. Reflecting extensive reader feedback, they have deepened and clarified coverage throughout, and reorganized content for even greater ease of understanding.