
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
How to make best use of the course and how the course is structured
Quick overview of what design patterns are
Quick overview of SOLID Principles
Learn the single-responsibility design principle in object-oriented programming in action
Learn the open-close design principle in object-oriented programming in action
Learn the liskov-substitution design principle in object-oriented programming in action
Learn the interface-segregation design principle in object-oriented programming in action
Learn the dependency-inversion design principle in object-oriented programming in action
Recap about the 5 SOLID design principles
Learn how to use UML for modeling your software before you start coding and the most commonly used relationships: composition, inheritance, dependency and implementation
Hands on coding and some powerful techniques in IntelliJ IDE for visualizing Code UMLs
Quick introduction into behavioral design patterns
Challenge that is required to be solved
Challenge solution using UML
Challenge solution implementation with hands on coding
Challenge solution discussion and enhancements with pros and cons.
Applying Observer design pattern implementation with hands on coding
Observer High Quality Real World Analogy
Learn how frameworks and libraries utilize the power of Observer design pattern
Learn when to use Observer design pattern and its applicability
Challenge that is required to be solved
Challenge solution using UML
Challenge solution implementation with hands on coding
Challenge solution discussion and enhancements with pros and cons.
Applying Strategy design pattern implementation with hands on coding
Strategy High Quality Real World Analogy
Learn how frameworks and libraries utilize the power of Strategy design pattern
Learn when to use Strategy design pattern and its applicability
Challenge that is required to be solved
Challenge solution using UML
Challenge solution implementation with hands on coding
Challenge solution discussion and enhancements with pros and cons.
Applying Strategy design pattern implementation with hands on coding
Template Method High Quality Real World Analogy
Learn how frameworks and libraries utilize the power of Template Method design pattern
Learn when to use Template Method design pattern and its applicability
Challenge that is required to be solved
Challenge solution using UML
Challenge solution implementation with hands on coding
Challenge solution discussion and enhancements with pros and cons.
Applying Memento design pattern implementation with hands on coding
Memento High Quality Real World Analogy
Learn how frameworks and libraries utilize the power of Memento design pattern
Learn when to use Memento design pattern and its applicability
Challenge that is required to be solved
Challenge solution using UML
Challenge solution implementation with hands on coding
Challenge solution discussion and enhancements with pros and cons.
Applying Visitor design pattern implementation with hands on coding
Visitor High Quality Real World Analogy
Learn how frameworks and libraries utilize the power of Visitor design pattern
Learn when to use Visitor design pattern and its applicability
Challenge that is required to be solved
Challenge solution using UML
Challenge solution implementation with hands on coding
Challenge solution discussion and enhancements with pros and cons.
Applying Iterator design pattern implementation with hands on coding
Iterator High Quality Real World Analogy
Learn how frameworks and libraries utilize the power of Iterator design pattern
Learn when to use Iterator design pattern and its applicability
السلام عليكم ورحمة الله وبركاته ,,
اللهم اجعله عملًا متقبلًا , واللهم اجعله علمًا ينتفع به وعلمنا ما ينفعنا واستعملنا ولا تستبدلنا
If you have been reading books and articles and still find a gap to apply design patterns in your work, if you don't know anything about design patterns, or if you already know what design patterns are,. This course is fit for all, Insha'allah, and I believe that it will add valuable information that you're going to benefit from.
There are no pizzas, animals, or shapes in this course, so get ready for our wonderful adventure!
Course Overview
This course aims not to just help you master design patterns but also learn to design and build maintainable, extensible, reusable, and robust software, and as a result, help you advance your career level!
Course Structure
The course is structured in the most convenient way of learning, including challenges to implement, so you're learning by doing, learning how to think, designing, and modeling a solution using UML, as well as improving your critical thinking by discussing the solution provided and its pitfalls, how to improve it, and finally reaching the design pattern implementation.
That's not the end! It's a journey, so after applying the design pattern, we still have a journey to continue through: reading the design pattern's applicability and when to use it, and also remarking it with high-quality designs using real-world analogies.
Finally, You are going to see a practical example of common libraries and frameworks that we use in our daily lives during programming without understanding that they are using a design pattern behind the scenes.
These examples would give you the power to see how frameworks actually leverage design patterns
The course has a comprehensive set of practical examples, covering almost everything you might need in order to fill the gap between reading design patterns in books and articles and applying them to your projects.
What is provided with the course?
Code samples from the hands-on lectures. You can download the finished code to study on your own.
All UML diagrams are provided as PDFs.
High-quality designs for real-world analogies.
Code snippets in common libraries and frameworks that apply design patterns behind the scenes.
What is not covered in this course?
Object-Oriented Programming
What is covered in this course?
SOLID Principles
UML (Unified Model Language)
Classical 22 Design Patterns
Object-Oriented Design