nTier’s Java Design Patterns training course seeks to develop, for the experienced Java programmer, a strong, shared vocabulary of design patterns and best practices. The course begins with a discussion of how to recognize and apply design patterns – that is, how to incorporate pattern awareness into one’s own analysis, design, and implementation practices. The main body of the course focuses on the Gang of Four design patterns, with a chapter each on creational, behavioral, and structural patterns. Classroom time is about evenly split between discussion, group design exercises, and coding labs to reinforce finer points of important patterns. Students will be challenged to bring their own previous development experience to the discussion, to see the patterns in everyday design and coding solutions. The course puts more emphasis on some patterns than others.

nTier also offers J2EE Patterns training and effective software development training boot camp.

Course Duration: 5 days
Prerequisites:

Solid Java programming experience is extremely helpful – especially object-oriented use of the language. Language features and techniques that are integral to some lab exercises include interfaces and abstract classes, threading, generics, collections, and recursive methods.  Previous experience with UML (Unified Modeling Language) will be helpful, but is not critical. The course uses UML class diagrams extensively but keeps notation fairly simple, and also includes a quick-reference appendix.

Course Objectives:
  • Start to think in terms of design patterns.
  • Recognize and apply patterns to specific software development problems.
  • Use known patterns as a shared vocabulary in designing and discussing solutions.
  • Use Factories and Singletons to control object creation, for a variety of reasons.
  • Use Observers, Observables, and Model/View/Controller systems to decouple application behavior and preserve code scalability.
  • Understand the full motivation for patterns in frameworks and begin to take advantage of frameworks like JSF, Spring or Struts
  • Understand and apply a range of other J2SE and J2EE/JEE patterns to improve code quality and scalability, and to produce high-quality solutions right off the bat
Course Outline:
  • Recognizing and Applying Patterns
    • Design Patterns
    • Defining a Pattern
    • Unified Modeling Language
    • Seeing Patterns
    • Warning Signs and Pitfalls
  • Creational Patterns
    • Factory Patterns
    • The Singleton Pattern
    • APIs and Providers
    • Cascading Factories
  • Behavioral Patterns
    • The Strategy Patterns
    • The Template Method Pattern
    • The Observer Pattern
    • The Model/View/Controller Pattern
    • The Command Pattern
    • The Chain of Responsibility Pattern
  • Structural Patterns
    • The Composite Pattern
    • The Adapter Pattern
    • The Decorator Pattern
    • The Facade Pattern
    • The Flyweight Pattern
  • J2EE Patterns (Optional)
    • Model/View/Controller, Redux
    • The Intercepting Filter Pattern
    • The Front and Application Controller Patterns
    • The Business Delegate Pattern
    • The Service Locator Pattern
    • The Transfer Object Pattern
    • The Composite Entity Pattern
    • The Data Access Object Pattern
  • Appendix A – Learning Resources