Patterns Training

Workshop Length

5 days

Objective

Learn to apply design and architectural patterns and best practices in the context of real-world applications.

Description

So you've learned the basics of Java. But can you create a well-designed object-oriented application? One that minimizes complexity and maintenance costs, but also performs and scales well? That's the purpose of this 5 day, hands-on workshop. You'll learn the best practices of object oriented design and architecture through the practical application of patterns.

Patterns are a great way to solidify your mastery of object oriented programming. Each pattern presents a common problem that occurs over and over, often in multiple contexts. And then a time-tested solution to that problem. Also, each pattern is has a name. A name helps cement the concept in your head and makes it easier to read technical materials that use these patterns.

Just recently we took over a software project from another team. The previous team made extensive (and appropriate) use of design patterns - the same patterns you will use in this workshop. Reading their code and documentation, we repeatedly came across terms like Visitor, Builder, Mediator, Flyweight, etc. Because we know these patterns inside and out we were able to quickly digest the important parts of their architecture.

Some trainers believe that design concepts can be taught independent from programming language, database and user interface considerations, with nothing but a whiteboard. This may be true, but it usually leaves the student unable to apply the principles to his or her actual project. In our workshop, we include lots of practical code examples.

When we first started teaching this workshop years ago we must admit that, at least for some of the patterns, our knowledge was purely academic. As such, some of our examples were borrowed from text books. Fast forward 10 years and this is no longer the case. We have now had occasion to use each and every pattern presented in this workshop multiple times in our own field work. We are very proud that today each pattern we present will be illustrated by at least two examples from our own projects. If we haven't used the pattern multiple times ourselves, it is not in this workshop.

We want this workshop to be immediately practical. The emphasis will be on making sure the students are able to apply the material to their projects.

Most of our public workshops are fairly small, and we avoid putting people together with drastically differing skill-levels. Because of this, we often tailor this workshop to meet the needs of each individual. So feel free to let us know if you have any particular goals or concerns and we will do our best to accommodate.
If you have any questions, please feel free to email me (Dave, the instructor) at dford@smart-soft.com.

Prerequisites

Basics of Java

Pricing

For private, dedicated workshops see our price page. For public, open-enrollment workshops, see the table to the right.

Topics

  • OO Review
    • Classes/Objects
    • Encapsulation
    • Inheritance
    • Composition
    • Polymorphism
    • Abstraction/Interfaces
  • UML Overview
    • Class Diagrams
    • Collaboration diagrams
  • Design Concepts Overview
    • Five Characteristics of a Good Design
    • Code Smells
    • Refactoring
    • Unit Testing
  • GRASP Design Patterns
    • Information Expert
    • Creator
    • Controller
    • Low Coupling
    • High Cohesion
    • Polymorphism
    • Pure Fabrication
    • Indirection
    • Protected Variations
  • Domain Driven Design Patterns
    • Entities
    • Value Objects
    • Services
    • Repositories
    • Factories
    • Aggregate
    • Aggregate Root
    • Bounded Context
    • Context Mapping
    • Anti Corruption Layer
  • GOF - Creational Patterns
    • Abstract Factory
    • Builder
    • Factory Method
    • Prototype
    • Singleton
  • GOF - Structural Patterns
    • Adapter
    • Bridge
    • Composite
    • Decorator
    • Facade
    • Flyweight
    • Proxy
  • GOF - Behavioral Patterns
    • Chain of Responsibility
    • Command
    • Interpreter
    • Iterator
    • Mediator
    • Memento
    • Observer
    • State
    • Strategy
    • Template Method
    • Visitor
  • Architectural Patterns
    • IOC & Dependency Injection Patterns
    • AOP & Interceptor Patterns
    • Sun Core Java EE Patterns
    • Fowler's Patterns of Enterprise Architecture
    • Fowler's Patterns of Rich User Interfaces
    • Layered Architectures
    • Caching Patterns
    • Queuing & Asynchronous Patterns
    • Patterns for Database Programming
    • Web Services, Remoting and RPC
    • MVC
    • MVP

Upcoming Dates

We don't cancel classes due to low enrollment.

Date Price  
06/10/2013 $4,000 Signup
06/17/2013 $4,000 Signup
06/24/2013 $4,000 Signup
07/01/2013 $4,000 Signup
07/08/2013 $4,000 Signup
07/15/2013 $4,000 Signup
07/22/2013 $4,000 Signup
07/29/2013 $4,000 Signup
08/05/2013 $4,000 Signup
08/12/2013 $4,000 Signup
08/19/2013 $4,000 Signup
08/26/2013 $4,000 Signup
09/02/2013 $4,000 Signup
09/09/2013 $4,000 Signup
09/16/2013 $4,000 Signup
09/23/2013 $4,000 Signup
09/30/2013 $4,000 Signup
10/07/2013 $4,000 Signup
10/14/2013 $4,000 Signup
10/21/2013 $4,000 Signup
10/28/2013 $4,000 Signup
11/04/2013 $4,000 Signup
11/11/2013 $4,000 Signup
11/18/2013 $4,000 Signup