Course Description
This 2-day Java Design Patterns training course explores proven real-world techniques to meet the biggest challenge in the software development community – building quality systems which fulfil business and technical requirements, and delivering them on time. The focus of the course is to give students the practical skills that are most critical in building well designed software systems. It is hands-on and applied, as well as giving students the formal knowledge they need to be fully conversant in this important area.
The course explores the most common object-oriented design patterns (Gang of Four) and how to use these patterns to develop solid, robust, and reusable software development applications. The course covers the patterns in the three core areas of Creational, Structural,and Behavioural and is hands-on with design projects and programming labs using Java as the demonstration language. The skills and knowledge gained from this course naturally apply to all object-oriented programming platforms.
After completing this course, participants will be able to:
- Describe the philosophy behind design patterns.
- Describe the GOF catalogue.
- Use various basic design patterns in Java code.
- Describe and use a small number of enterprise patterns.
Pre-requisites
Some experience in object-oriented thinking / programming and a basic knowledge of the Java language are pre-requisite for this course.
Who is this course for?
For Software Developers, System Architects, Software Testers, and IT Project Managers who need to improve systems development through the use of design patterns.
Course Content
Introduction
What is a Design Pattern?
Why Use Patterns?
Adapter Pattern
Interfaces and Abstract Classes
Interface Types and Definitions
Abstract Methods & Classes
Using Abstract Classes
Important Principles of OO Design
Iterator Pattern
Patterns: Traversing a Collection
A Simple ArrayList
Using a Simple Collection
An Alternative Traversal Design
Why is this a Design Pattern?
Design Patterns - Background
Design Patterns Arise from Architecture
Christopher Alexander
Patterns in a Pattern Language
Sitting Circle(185)
Different Chairs(251)
Patterns Evolution in Software
OOPSLA 88
Patterns Today
UML Overview
Unified Modelling Language (UML)
Using UML
UML Diagrams
Class Diagram
Class Diagram Notation
Association Relationships
Abstract Class Notation
Interface Notation
Gang of Four Design Patterns (GOF)
GOF Pattern Description
Iterator: Overview
Iterator: Motivation
Iterator: Applicability
Iterator: Structure – Java
Iterator: Structure – General
Iterator: Participants
Iterator: Collaborations & Consequences
Iterator: Implementation
Implementation: Who Controls the Iteration
Implementation: Who Defines the Traversal
Implementation: Robustness
Iterator: Known Uses and Related Patterns
The GOF Patterns Catalog
Organising the Catalog
Creational, Structural and Behavioural Purpose
Class and Object Scope
Design Pattern Space
The GOF Catalog of Design Patterns
Factory Method Pattern
Motivation – Forces and Solution
Factory Method Iterator Usage
Factory Method – General Structure
Participants and Collaborations
Applicability
Consequences
Implementation
Known Uses and Related Patterns
Strategy Pattern
Motivation – Forces & Solution
Structure
Alternative to Strategy
Participants and Collaborations
Applicability
Consequences
Implementation
Known Uses & Related Patterns
Difference from Factory Method
Decorator Pattern
Motivation – Forces and Solution
Structure
Participants & Collaborations
Writer & FileWriter Classes
UpperCaseFilterWriter Class
Consequences
Implementation
Known Uses & Related Patterns
Composite Pattern
Motivation – Forces & Solution
Structure
Participants and Collaborations
Consequences
Implementation
Known Uses and Related Patterns
Template Method Pattern
Motivation – Forces and Solution
Structure
Participants & Collaborations
Consequences
Implementation
Known Uses and Related Patterns
Command Pattern
Motivation – Forces & Solution
Structure
Participants and Collaborations
Consequences
Implementation
Undo and Redo
Known Uses
Chain of Responsibility Pattern
Motivation – Forces and Solution
Structure
Participants & Collaborations
Consequences
Applicability
Implementation
Known Uses and Related Patterns
Facade Pattern
Motivation – Forces and Solution
Structure
Participants and Collaborations
Applicability
Consequences
Implementation
Known Uses
Patterns for Enterprise Systems
Technologies and Best Practices
Some Patterns for Enterprise Systems
Business Delegate
Business Delegate: Solution
Business Delegate: Structure
Business Delegate: Consequences
Value Object
Value Object: Solution
Value Object: Structure
Value Object: Consequences
Data Access Object (DAO)
DAO: Solution
DAO: Structure
DAO: Consequences
Lazy Load
Lazy Load: Solution
Lazy Load: Consequences
Wrap up
What Have We Done?
Where Do We Go From Here?
Design Patterns Isn’t All You Need