Design Patterns for JAVA
This Design Patterns Training will familiarize you with all the fundamental and advanced
techniques of Object-Oriented Design. You will learn how to consider any Object Design
situation, identify all its concepts and relationships, and model them. Furthermore, you'll
learn advanced Design strategies based on the most powerful Design Patterns. It will lay the
ground to implement these patterns in an Object-oriented language like JAVA. This is a
background all professional, serious developers should have. Without it, OO development
requires hard labor but brings very little reward. Sessions offer a very balanced blend of
lectures and exercises; it renders the learning process attractive, interactive, and very
thorough.
Note: This course's contents duration, and various options can be adapted to your
specific needs.
Objectives:
This course will familiarize you with:
The concepts of Objects, Classes, their relationships and how to model them.
The fundamental techniques of Object Design.
The main Design Patterns:
Creational Patterns
Structural Patterns
Behavioral Patterns
When to use Design Patterns, as opposed to "reinventing the wheel".
The criteria to decide which pattern(s) to use.
How to implement any object design and patterns in JAVA.
Target Audience
Technical Leads
Software Architects
Developers.
Prerequisites :
Must have worked on JAVA at least for 3 years.
Duration
5 Days
Day 1
Introduction, MVC, Roles, Interface-vs-Implementation
Problem - a description of a common software engineering problem.
Solution - a description of the "best practice" way to solve that problem.
Setup - JAVA code sample that creates objects.
Use - JAVA code sample that uses objects.
Classes - JAVA header files and source files for the classes in the solution.
Design Pattern - a description of what makes this a "design pattern"
When To Use (this pattern)
Makes It Easier To ...
References to the literature
Lab instructions
The Factory Method Design Pattern
Problem - a description of a common software engineering problem.
Solution - a description of the "best practice" way to solve that problem.
Setup - JAVA code sample that creates objects.
Use - JAVA code sample that uses objects.
Classes - JAVA header files and source files for the classes in the solution.
Design Pattern - a description of what makes this a "design pattern"
[Link]
When To Use (this pattern)
Makes It Easier To ...
References to the literature
Lab instructions
The Singleton Design Pattern
Problem - a description of a common software engineering problem.
Solution - a description of the "best practice" way to solve that problem.
Setup - JAVA code sample that creates objects.
Use - JAVA code sample that uses objects.
Classes - JAVA header files and source files for the classes in the solution.
Design Pattern - a description of what makes this a "design pattern"
When To Use (this pattern)
Makes It Easier To ...
References to the literature
Lab instructions
The Mediator Method Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
Day 2
The Abstract Factory Design Pattern
Problem - a description of a common software engineering problem.
Solution - a description of the "best practice" way to solve that problem.
Setup - JAVA code sample that creates objects.
Use - JAVA code sample that uses objects.
Classes - JAVA header files and source files for the classes in the solution.
Design Pattern - a description of what makes this a "design pattern"
When To Use (this pattern)
Makes It Easier To ...
References to the literature
Lab instructions
The Proxy Design Pattern
Problem - a description of a common software engineering problem.
Solution - a description of the "best practice" way to solve that problem.
Setup - JAVA code sample that creates objects.
Use - JAVA code sample that uses objects.
Classes - JAVA header files and source files for the classes in the solution.
Design Pattern - a description of what makes this a "design pattern"
When To Use (this pattern)
Makes It Easier To ...
References to the literature
Lab instructions
The Composite Design Pattern
Problem - a description of a common software engineering problem.
Solution - a description of the "best practice" way to solve that problem.
Setup - JAVA code sample that creates objects.
[Link]
Use - JAVA code sample that uses objects.
Classes - JAVA header files and source files for the classes in the solution.
Design Pattern - a description of what makes this a "design pattern"
When To Use (this pattern)
Makes It Easier To ...
References to the literature
Lab instructions
The Flyweight Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The Iterator Method Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
Day 3
The Interpreter Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The Visitor Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The Chain of Responsibility Design Pattern
* Problem - a description of a common software engineering problem.
[Link]
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The Memento Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The Strategy Method Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
Day 4
The Command Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The State Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
[Link]
The Decorator Design Pattern
Problem - a description of a common software engineering problem.
Solution - a description of the "best practice" way to solve that problem.
Setup - JAVA code sample that creates objects.
Use - JAVA code sample that uses objects.
Classes - JAVA header files and source files for the classes in the solution.
Design Pattern - a description of what makes this a "design pattern"
When To Use (this pattern)
Makes It Easier To ...
References to the literature
Lab instructions
The Observer Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The Bridge Method Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
Day 5
The Adapter Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The Facade Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
[Link]
* Lab instructions
The Template Method Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The Prototype Method Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
The Builder Method Design Pattern
* Problem - a description of a common software engineering problem.
* Solution - a description of the "best practice" way to solve that problem.
* Setup - JAVA code sample that creates objects.
* Use - JAVA code sample that uses objects.
* Classes - JAVA header files and source files for the classes in the solution.
* Design Pattern - a description of what makes this a "design pattern"
* When To Use (this pattern)
* Makes It Easier To ...
* References to the literature
* Lab instructions
[Link]