ASERT LOGO Advanced Software Engineering, Research and Training
Leading-Edge Courseware, Highly-Skilled Experienced Instructors

JV240: Java and Java EE Design Patterns (2-3 days*)

Course Overview

Design patterns are recurring solutions to common software problems. The specific details of a software problem may vary from project to project but patterns capture the essence and basic structure of successful experiences in solving similar problems. Design patterns thus offer a technique for capturing design and architecture, presenting and communicating architectural knowledge at all levels of a system, allowing experience and insights to be understood and distilled. This course is an in-depth introduction to design patterns for Java and J2EE systems and is designed for intermediate Java programmers wanting to advanced their mastery of the Java language by adopting best-practice coding conventions and patterns.

View sample slides: PatternsOverview

Covered patterns include fundamental patterns, creational patterns, behavioural patterns, structural patterns, system patterns, concurrency patterns, inter-tier data transfer patterns, presentation-tier patterns, business-tier patterns, persistence-framework patterns and integration-tier patterns.

Business Benefits

Design patterns incorporate proven techniques which embody the wisdom and experience of master practitioners and provide the following business benefits:

  • Patterns can save programmers costly time by offering time-tested patterns rather than requiring developers to invent, test and debug their own designs from scratch.
  • Patterns can reduce maintenance costs because most are created to assist refactoring and support evolvability.
  • Finally, design patterns can increase team productivity because the team can communicate about their design options and choices using well-undertood, high-level pattern terminology rather than explaining low-level coding details.

Audience

Software Developers, Designers, Technical Managers and Architects interested in a hands-on exploration of Java & J2EE Design Patterns.

Pre-requisites

Students should be experienced programmers with a strong Java background. A basic knowledge of distributed computing, (RMI and/or CORBA/Java, J2EE), and a working knowledge of Servlets, JSPs and EJBs.

Course Objectives

After completing this course, participants will be able to:

  • Understand the principles of using design patterns
  • Understand several commonly used design patterns and be able to recognize them in other people's code
  • Choose the right design patterns for their own projects
  • Write flexible, reusable code
  • Abstract object construction with creational patterns
  • Compose objects and classes into larger groupings with structural patterns
  • Architect flexible and maintainable J2EE applications

Course Topics *

  • Patterns concepts
  • Factory pattern
  • Observer pattern
  • Singletons
  • Iterators
  • Value list handler
  • Service locator
  • Command pattern
  • MVC pattern
  • Service activator
  • Dispatchers
  • Controllers
  • Workers
  • Inter-tier data transfer patterns including value objects and data access objects
  • Session façade
  • Message façade
  • Business delegates
  • Anti-patterns

* The course is modular and may be tailored to meet your exacting requirements. This description covers the 3-Day version of the course.