Complete Guide to Java Design Patterns: Creational, Behavioral, and Structural
5h 8mIntermediate2024-03-29
Authors

Bethan Palmer
Developer
Course details
In this course, developer Bethan Palmer guides you through using creative, behavioral, and structural design patterns in Java. Find out how design patterns help you write cleaner, more elegant code, and explore a wide range of patterns with real world examples. Practice and reinforce what you learn with hands-on challenges in each chapter.
Skills covered
Software DesignJavaOracleProgramming LanguagesSoftware DevelopmentDeep Dive (X:Y)
Concepts
Introduction
- Improve your code with design patterns
- What you should know
Design Patterns
- What is a design pattern
Creational Design Patterns
- What are creational design patterns
The Builder Pattern
- Avoiding complex constructors
- Recognize where to use the Builder pattern
- Implement a complete Builder pattern
- Improving the Builder pattern
- Challenge - The Builder pattern
- Solution - The Builder pattern
The Singleton Pattern
- When to use the Singleton pattern
- Implementing the Singleton pattern
- Thread safety with the Singleton pattern
- Challenge - The Singleton pattern
- Solution - The Singleton pattern
The Prototype Pattern
- Understand the Prototype pattern
- Implement the Prototype pattern
- Handling mutability
- Challenge - The Prototype pattern
- Solution - The Prototype pattern
The Factory Method
- Understand the Factory Method pattern
- Implement the Factory Method pattern
- Improve the Factory Method pattern with functional programming
- Challenge - The Factory Method pattern
- Solution - The Factory Method pattern
Abstract Factories
- Understand abstract factories
- Recognize where to use abstract factories
- Create factories for families of objects
- Implement the complete Abstract Factory pattern
- Challenge - The Abstract Factory pattern
- Solution - The Abstract Factory pattern
Structural Design Patterns
- What are structural design patterns
The Adapter Pattern
- Understand the Adapter pattern
- Implement the object Adapter pattern
- Implement the class Adapter pattern
- Challenge - The Adapter pattern
- Solution - The Adapter pattern
The Bridge Pattern
- Understand the Bridge pattern
- Implement the Bridge pattern
- Challenge - The Bridge pattern
- Solution - The Bridge pattern
The Composite Pattern
- Understand the Decorator pattern
- Change behavior dynamically with a decorator
- Challenge - The Decorator pattern
- Solution - The Decorator pattern
The Decorator Pattern
- Understand the Decorator pattern
- Change behavior dynamically with a decorator
- Add multiple decorations to an object
- Challenge - The Decorator pattern
- Solution - The Decorator pattern
The Facade Pattern
- Understand the Facade pattern
- Implement the Facade pattern
- Challenge - The Facade pattern
- Solution - The Facade pattern
The Flyweight Pattern
- Understand the Flyweight pattern
- Implement the Flyweight pattern
- Challenge - The Flyweight pattern
- Solution - The Flyweight pattern
The Proxy Pattern
- Understand the Proxy pattern
- Recognize where to use the Proxy pattern
- Use a proxy to create objects on demand
- Use a proxy to control access
- Challenge - The Proxy pattern
- Solution - The Proxy pattern
Behavioral Design Patterns
- What are behavioral design patterns
The Chain of Responsibility Pattern
- Understand the Chain of Responsibility pattern
- Recognize where to use the Chain of Responsibility pattern
- Implement a successor chain
- Challenge - The Chain of Responsibility pattern
- Solution - The Chain of Responsibility pattern
The Command Pattern
- Understand the Command pattern
- Implement the Command pattern
- Use the Command pattern to delay operations
- Challenge - The Command pattern
- Solution - The Command pattern
The Interpreter Pattern
- Understand the Interpreter pattern
- Creating an interpreter for a language
- Interpreting a variable
- Challenge - The Interpreter pattern
- Solution - The Interpreter pattern
The Iterator Pattern
- Understand the Iterator pattern
- Create an Iterable
- Create an Iterator
- Challenge - The Iterator pattern
- Solution - The Iterator pattern
The Mediator Pattern
- Understand the Mediator pattern
- Avoid tight coupling between objects
- Create a Mediator object
- Challenge - The Mediator pattern
- Solution - The Mediator pattern
The Memento Pattern
- Understand the Memento pattern
- Restoring an object's state
- Challenge - The Memento pattern
- Solution - The Memento pattern
The Observer Pattern
- Understand the Observer pattern
- Implementing an Observer
- Implementing an Observable
- Challenge - The Observer pattern
- Solution - The Observer pattern
The State Pattern
- Understand the State pattern
- Avoiding multiple if-else statements
- Allowing an object to change its behavior
- Challenge - The State pattern
- Solution - The State pattern
The Strategy Pattern
- Understand the Strategy pattern
- Implement the Strategy pattern
- Improve the Strategy pattern
- Challenge - The Strategy pattern
- Solution - The Strategy pattern
The Template Method Pattern
- Understand the Template Method pattern
- Implement the Template Method pattern
- Challenge - The Template Method pattern
- Solution - The Template Method pattern
The Visitor Pattern
- Understand the Visitor pattern
- Implement the Visitor pattern
- Challenge - The Visitor pattern
- Solution - The Visitor pattern
Conclusion
- Next steps