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
0. Introduction
- 01 - Improve your code with design patterns
- 02 - What you should know
1. Design Patterns
- 03 - What is a design pattern
2. Creational Design Patterns
- 04 - What are creational design patterns
3. The Builder Pattern
- 05 - Avoiding complex constructors
- 06 - Recognize where to use the Builder pattern
- 07 - Implement a complete Builder pattern
- 08 - Improving the Builder pattern
- 09 - Challenge - The Builder pattern
- 10 - Solution - The Builder pattern
4. The Singleton Pattern
- 11 - When to use the Singleton pattern
- 12 - Implementing the Singleton pattern
- 13 - Thread safety with the Singleton pattern
- 14 - Challenge - The Singleton pattern
- 15 - Solution - The Singleton pattern
5. The Prototype Pattern
- 16 - Understand the Prototype pattern
- 17 - Implement the Prototype pattern
- 18 - Handling mutability
- 19 - Challenge - The Prototype pattern
- 20 - Solution - The Prototype pattern
6. The Factory Method
- 21 - Understand the Factory Method pattern
- 22 - Implement the Factory Method pattern
- 23 - Improve the Factory Method pattern with functional programming
- 24 - Challenge - The Factory Method pattern
- 25 - Solution - The Factory Method pattern
7. Abstract Factories
- 26 - Understand abstract factories
- 27 - Recognize where to use abstract factories
- 28 - Create factories for families of objects
- 29 - Implement the complete Abstract Factory pattern
- 30 - Challenge - The Abstract Factory pattern
- 31 - Solution - The Abstract Factory pattern
8. Structural Design Patterns
- 32 - What are structural design patterns
9. The Adapter Pattern
- 33 - Understand the Adapter pattern
- 34 - Implement the object Adapter pattern
- 35 - Implement the class Adapter pattern
- 36 - Challenge - The Adapter pattern
- 37 - Solution - The Adapter pattern
10. The Bridge Pattern
- 38 - Understand the Bridge pattern
- 39 - Implement the Bridge pattern
- 40 - Challenge - The Bridge pattern
- 41 - Solution - The Bridge pattern
11. The Composite Pattern
- 42 - Understand the Decorator pattern
- 43 - Change behavior dynamically with a decorator
- 44 - Challenge - The Decorator pattern
- 45 - Solution - The Decorator pattern
12. The Decorator Pattern
- 46 - Understand the Decorator pattern
- 47 - Change behavior dynamically with a decorator
- 48 - Add multiple decorations to an object
- 49 - Challenge - The Decorator pattern
- 50 - Solution - The Decorator pattern
13. The Facade Pattern
- 51 - Understand the Facade pattern
- 52 - Implement the Facade pattern
- 53 - Challenge - The Facade pattern
- 54 - Solution - The Facade pattern
14. The Flyweight Pattern
- 55 - Understand the Flyweight pattern
- 56 - Implement the Flyweight pattern
- 57 - Challenge - The Flyweight pattern
- 58 - Solution - The Flyweight pattern
15. The Proxy Pattern
- 59 - Understand the Proxy pattern
- 60 - Recognize where to use the Proxy pattern
- 61 - Use a proxy to create objects on demand
- 62 - Use a proxy to control access
- 63 - Challenge - The Proxy pattern
- 64 - Solution - The Proxy pattern
16. Behavioral Design Patterns
- 65 - What are behavioral design patterns
17. The Chain of Responsibility Pattern
- 66 - Understand the Chain of Responsibility pattern
- 67 - Recognize where to use the Chain of Responsibility pattern
- 68 - Implement a successor chain
- 69 - Challenge - The Chain of Responsibility pattern
- 70 - Solution - The Chain of Responsibility pattern
18. The Command Pattern
- 71 - Understand the Command pattern
- 72 - Implement the Command pattern
- 73 - Use the Command pattern to delay operations
- 74 - Challenge - The Command pattern
- 75 - Solution - The Command pattern
19. The Interpreter Pattern
- 76 - Understand the Interpreter pattern
- 77 - Creating an interpreter for a language
- 78 - Interpreting a variable
- 79 - Challenge - The Interpreter pattern
- 80 - Solution - The Interpreter pattern
20. The Iterator Pattern
- 81 - Understand the Iterator pattern
- 82 - Create an Iterable
- 83 - Create an Iterator
- 84 - Challenge - The Iterator pattern
- 85 - Solution - The Iterator pattern
21. The Mediator Pattern
- 86 - Understand the Mediator pattern
- 87 - Avoid tight coupling between objects
- 88 - Create a Mediator object
- 89 - Challenge - The Mediator pattern
- 90 - Solution - The Mediator pattern
22. The Memento Pattern
- 91 - Understand the Memento pattern
- 92 - Restoring an object's state
- 93 - Challenge - The Memento pattern
- 94 - Solution - The Memento pattern
23. The Observer Pattern
- 95 - Understand the Observer pattern
- 96 - Implementing an Observer
- 97 - Implementing an Observable
- 98 - Challenge - The Observer pattern
- 99 - Solution - The Observer pattern
24. The State Pattern
- 100 - Understand the State pattern
- 101 - Avoiding multiple if-else statements
- 102 - Allowing an object to change its behavior
- 103 - Challenge - The State pattern
- 104 - Solution - The State pattern
25. The Strategy Pattern
- 105 - Understand the Strategy pattern
- 106 - Implement the Strategy pattern
- 107 - Improve the Strategy pattern
- 108 - Challenge - The Strategy pattern
- 109 - Solution - The Strategy pattern
26. The Template Method Pattern
- 110 - Understand the Template Method pattern
- 111 - Implement the Template Method pattern
- 112 - Challenge - The Template Method pattern
- 113 - Solution - The Template Method pattern
27. The Visitor Pattern
- 114 - Understand the Visitor pattern
- 115 - Implement the Visitor pattern
- 116 - Challenge - The Visitor pattern
- 117 - Solution - The Visitor pattern
Conclusion
- 118 - Next steps