Pattern-Based Software Development in Java - Hands-on Introduction to Patterns with Models and Code

Contact Us for Dates
4 days practical workshop for up to 12 people.

Only £1580 per person

Contact us for Onsite Price

The essence and basic structure of a software design solution may be repeated many times, even though the realisation is different in each case. Patterns offer a technique for capturing such recurrence, allowing design experience to be understood, distilled and shared. The Pattern-Based Software Development in Java course introduces patterns from the ground up, presenting principles as well as concrete examples. It develops understanding through lectures, discussion and hands-on labs, which reinforce the concepts by putting them into practice.


This course is divided up into lectures and practical exercises.

Training Course Objectives

  • Understand what does and does not go to make up a pattern
  • Understand the beneficial role of patterns in all aspects of development
  • Learn and use common patterns for object-oriented and large-scale design
  • Appreciate patterns from the strategic level down to idiomatic examples in Java

Who it is for

The course is suitable for software developers familiar with object-oriented principles and practices. Programming experience in Java is assumed, and familiarity with UML is beneficial.

Training Course Prerequisites

  • Be profieient in programming using the Java programming language


Chapter 1 Software Architecture

  • Defining architecture
  • Dependencies
  • Stability and change
  • Patterns

Chapter 2 Core Pattern Concepts

  • Patterns in software architecture
  • Pattern anatomy
  • Role of patterns
  • Essential pattern form elements
  • Common pattern resources

Chapter 3 Introductory Pattern Examples

  • General design patterns in OO
  • The Composite pattern
  • The Proxy pattern
  • Patterns beyond objects

Chapter 4 Combining Patterns

  • Pattern catalogues
  • Pattern communities
  • Classes and patterns in JUnit
  • From individual to multiple patterns
  • The Visitor pattern
  • Pattern stories and languages

Chapter 5 Pattern Context Dependency

  • Context sensitivity
  • The Client Proxy pattern
  • Strategic and tactical patterns
  • Idioms
  • The Immutable Value pattern
  • The Combined Method pattern
  • The Data Transfer Object (DTO) pattern

Chapter 6 Patterns for Decoupling

  • The Layers pattern and variations
  • The Fragile Base Class problem
  • The Explicit Interface pattern
  • The Separated Interface pattern
  • The Bridge pattern

Chapter 7 Patterns for Adaptation

  • The Object Adapter pattern
  • The Class Adapter pattern
  • Wrapped Adapter pattern
  • The Decorator pattern
  • The Template Method pattern
  • The Facade pattern

Chapter 8 Patterns for Object Management

  • The Factory Method pattern
  • The Disposal Method pattern
  • The Manager pattern
  • The Leasing pattern
  • The Evictor pattern

Chapter 9 Patterns for Pluggability

  • The Strategy pattern
  • The Interceptor pattern
  • The Null Object pattern
  • The Context Object pattern
  • The Mock Object pattern
  • The Command pattern
  • The Command Processor pattern
  • The Block pattern

Chapter 10 Patterns for Iteration

  • The Iterator pattern
  • The Enumeration Method pattern
  • The Collecting Parameter pattern
  • The Batch Method pattern
  • The Batch Iterator pattern

Chapter 11 Patterns for Object Lifecycles

  • Modal Behaviour
  • The Objects for States (State) pattern
  • The Methods for States pattern
  • The Collections for States pattern

Chapter 12 Patterns for Notification

  • Event flow
  • The Observer pattern
  • The Model?View?Controller (MVC) pattern
  • The Event Channel pattern
  • The Pipes and Filters pattern

Chapter 13 Pattern Pitfalls

  • Common pitfalls
  • Pattern applicability and quality
  • Dysfunctional patterns and applications
  • The Getters and Setters 'pattern'
  • The Singleton pattern (and avoiding it)