Complete Guide to Java Design Patterns: Creational, Behavioral, and Structural
.MP4, AVC, 1280x720, 30 fps | English, AAC, 2 Ch | 5h 6m | 690 MB
Instructor: Bethan Palmer
.MP4, AVC, 1280x720, 30 fps | English, AAC, 2 Ch | 5h 6m | 690 MB
Instructor: Bethan Palmer
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.
The best way to learn a language is to use it in practice. That’s why this course is integrated with GitHub Codespaces, an instant cloud developer environment that offers all the functionality of your favorite IDE without the need for any local machine setup. With GitHub Codespaces, you can get hands-on practice from any machine, at any time—all while using a tool that you’ll likely encounter in the workplace. Check out the “Using GitHub Codespaces with this course” video to learn how to get started.
Learning objectives
- Identify the use cases for various design patterns and determine appropriate situations for their application.
- Implement creational design patterns such as Singleton, Factory Method, and Prototype to manage object creation in a flexible and reusable manner.
- Integrate structural design patterns like Adapter, Bridge, Composite, and Decorator to simplify and optimize class structures.
- Apply behavioral design patterns such as Chain of Responsibility, Command, Observer, State, Strategy, Template Method, and Visitor to manage object interactions and responsibilities effectively.
- Develop code that adheres to the principles of object-oriented design, such as encapsulation, loose coupling, and the open/closed principle.
- Utilize the Memento pattern to externalize and restore the state of an object without violating encapsulation.
- Design robust systems using the Mediator pattern to centralize inter-object communications and interactions.
- Create custom iterators for traversing collections of objects with the Iterator pattern, ensuring flexibility and adherence to interface contracts.
- Implement the Flyweight pattern to efficiently manage memory by reusing existing object instances.
- Apply the Facade pattern to provide a simplified interface to complex subsystems, enhancing code usability and readability.