Introduction
Improve your code with design patterns
()
What you should know
()
1. Design Patterns
What is a design pattern?
()
2. Creational Design Patterns
What are creational design patterns?
()
3. 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
()
4. 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
()
5. The Prototype Pattern
Understand the Prototype pattern
()
Implement the Prototype pattern
()
Handling mutability
()
Challenge: The Prototype pattern
()
Solution: The Prototype pattern
()
6. 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
()
7. 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
()
8. Structural Design Patterns
What are structural design patterns?
()
9. 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
()
10. The Bridge Pattern
Understand the Bridge pattern
()
Implement the Bridge pattern
()
Challenge: The Bridge pattern
()
Solution: The Bridge pattern
()
11. The Composite Pattern
Understand the Composite pattern
()
Implement the Composite pattern
()
Challenge: the Composite pattern
()
Solution: the Composite pattern
()
12. 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
()
13. The Facade Pattern
Understand the Facade pattern
()
Implement the Facade pattern
()
Challenge: The Facade pattern
()
Solution: The Facade pattern
()
14. The Flyweight Pattern
Understand the Flyweight pattern
()
Implement the Flyweight pattern
()
Challenge: The Flyweight pattern
()
Solution: The Flyweight pattern
()
15. 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
()
16. Behavioral Design Patterns
What are behavioral design patterns?
()
17. 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
()
18. 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
()
19. The Interpreter Pattern
Understand the Interpreter pattern
()
Creating an interpreter for a language
()
Interpreting a variable
()
Challenge: The Interpreter pattern
()
Solution: The Interpreter pattern
()
20. The Iterator Pattern
Understand the Iterator pattern
()
Create an Iterable
()
Create an Iterator
()
Challenge: The Iterator pattern
()
Solution: The Iterator pattern
()
21. The Mediator Pattern
Understand the Mediator pattern
()
Avoid tight coupling between objects
()
Create a Mediator object
()
Challenge: The Mediator pattern
()
Solution: The Mediator pattern
()
22. The Memento Pattern
Understand the Memento pattern
()
Restoring an object's state
()
Challenge: The Memento pattern
()
Solution: The Memento pattern
()
23. The Observer Pattern
Understand the Observer pattern
()
Implementing an Observer
()
Implementing an Observable
()
Challenge: The Observer pattern
()
Solution: The Observer pattern
()
24. 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
()
25. The Strategy Pattern
Understand the Strategy pattern
()
Implement the Strategy pattern
()
Improve the Strategy pattern
()
Challenge: The Strategy pattern
()
Solution: The Strategy pattern
()
26. The Template Method Pattern
Understand the Template Method pattern
()
Implement the Template Method pattern
()
Challenge: The Template Method pattern
()
Solution: The Template Method pattern
()
27. The Visitor Pattern
Understand the Visitor pattern
()
Implement the Visitor pattern
()
Challenge: The Visitor pattern
()
Solution: The Visitor pattern
()