Design Patterns Training
This course explores design patterns through the lens of real-world projects. It demonstrates how understanding design patterns creates better solutions and leads to more effective code design.
Overview
This training provides a comprehensive understanding of the most common object-oriented design patterns. You will learn how design patterns can inspire better ideas for achieving improved code design, with greater maintainability, reusability, and extensibility.
The course approaches design patterns from a real-world perspective. It emphasizes minimizing the cost of change by adopting a code design that embraces flexibility. For each pattern, we discuss its intent, applicability, and the key considerations for tailoring it to specific contexts. You will also see practical code examples that show how these patterns have been applied in various projects, including how they can be combined with other design principles or practices.
Each pattern addresses a recurring problem in software development, providing a core solution that can be adapted countless times without ever being applied in the same way twice. By understanding these patterns, and how to tweak and combine them effectively, you will be better equipped to write quality, adaptable code.
Motivation
Transforming a technical problem into well-structured, maintainable code is challenging. Classes often become too large or too fragmented, making balance elusive.
Creating effective class dependencies is another hurdle. Poor dependencies lead to tightly coupled code, hindering reusability and maintainability.
Design patterns offer proven, reusable solutions. They help create balanced components and effective dependencies, resulting in adaptable, high-quality code.
Learning Objectives
- Understand common design patterns and their real-world applications
- Develop the skills to create balanced, maintainable, and reusable code structures
- Use design patterns to improve flexibility and reduce change costs
- Combine patterns and principles for effective software design.
Target Audience
Any software architect and software developer would benefit greatly from this training.
Outline
➟ onsite: two full days
➟ online: four days with 4-hour sessions each
The training takes the most used patterns from the book “Design Patterns, Elements of Reusable Object Oriented Software” and discusses them. Each pattern is presented using the same structure: Intent, Usage Examples, Generic Structure, Applicability, Collaborations, Considerations and Code Samples.
The patterns that are usually discussed are:
- Abstract Factory
- Factory Method
- Builder
- Adapter
- Template Method
- Decorator
- Composite
- Façade
- Observer
- Strategy
- Chain of Responsibility
- Visitor
- Memento