Java Design Patterns & SOLID Design Principles (Udemy.com)
A master guide to gang of four design patterns & SOLID design principles using Java
Created by: Coffee Powered Crew
Last updated January 2025
What you will learn
- Master 26 design patterns including 23 design patterns of gang of four & other new modern design patterns
- Master the SOLID design principles using Java with hands on examples along with design patterns
- Get a complete understanding of Java design patterns & understand where to use them in Java code
- Learn the differences between competing design patterns to choose correct solution to your problem
- Get real world examples of design patterns usage with hands on projects for every design pattern
- Become senior Java developer by learning about design patterns and SOLID design principles
- Understand & implement all creational, structural & behavioral gang of four design patterns using Java
- Understand & implement Null Object, Object Pool design patterns using Java
- Comprehensive knowledge about limitations, comparisons, real world usage & hand on examples of design patterns using Java
How it compares
Against the other 231 rated Udemy courses in Java on CourseDuck:
- Rating4.5 out of 5higher than 53% of them
- Reviews7,300#37 of 232 by number of reviews
- Length17 hourslonger than 74% of them
- Last updatedJanuary 2025more recently than 58% of them
Course Description
Course Overview
This course starts with SOLID Design Principles in Java. It will then provide a comprehensive introduction to Java Design patterns with practical, hands on exercises.
What are SOLID Design Principles?
SOLID design principles are almost a mandatory skill for every Java developer. These principles enable you to write most reusable & clean Java code in your projects.
You'll learn SOLID Principles which are:
Single Responsibility Principle
Open-Closed Principle
Liskov Substitution Principle
Interface Segregation Principle
Dependency Inversion Principle
All these principles are explained in detail and you'll refactor existing Java code and apply these principles in hands on exercise along with me.
Then we move on to Java Design Patterns.
To learn about the design patterns using Java programming language we'll discuss:
Learn what kind of problems are solved by each design pattern.
Discuss various roles in the design pattern using UML diagrams.
We'll use UML of example that we are going to solve as well as UMLs from gang of four book
Discuss how the design pattern is applied in the example & how various parts fit together.
Hands on example using Java in Eclipse IDE that uses the design pattern.
Various design & implementation considerations for every design pattern.
Discuss how the design pattern varies from another similar pattern.
See where a design pattern is used in real life.
This course covers all the classic design patterns from the Gang of Four (GoF) book. In addition we'll discuss few newer design patterns that are used in modern software development. We'll discuss how a pattern can be implemented in various ways & how we can tailor them to be used with Java language.
This course is the Most Comprehensive course on Java Design Patterns that you can find.
So, what are Design Patterns & why should you care?
Design patterns represent solutions to common problems, which you face while doing programming. These solutions are reusable and can solve a wide variety of problems. These became popular with the release of classic book on the subject "Elements of Reusable Object-Oriented Software" writtern by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (these authors are known as Gang of Four and so the common abbreviation GoF book :) )
One problem while studying this book as a Java developer is that the authors are using C++ to demonstrate a pattern, which was the most popular & widely used programming language at the time. So you'll see examples using C++ language features like pointers, copy constructors etc. which do not translate easily to Java.
This course will help greatly in that aspect. We'll study each design pattern using Java to its full potential.
What is covered in this course?
This course covers SOLID Design Principles and 26 design patterns in all. We'll cover following:
SOLID Design Principles: Learn about Single Responsibility, Open-Closed, Liskov substitution, Interface segregation & Dependency Inversion principles.
Creational Design Patterns: Simple Factory, Abstract Factory, Factory Method, Singleton, Builder, Prototype & Object Pool
Structural Design Patterns: Object & Class Adapters, Decorator, Bridge, Facade, Static & Dynamic Proxy, Flyweight & Composite
Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Mediator, Iterator, Memento, Observer, State, Strategy, Template Method, Visitor, & Null Object
Each design patterns is also implemented in a follow along coding lecture.
How the Course is Structured?
We focus on live coding along with theory. Each design is implemented in a live coding session (which you can follow along) as well as discussed with UML & slides. After studing a section you'll know almost everything about the design pattern.
This course is created with focus on being used as a reference. So each design pattern is discussed in it's own section with a separated lecture for each aspect of the design pattern. Each section is organized as following lectures:
1. Introduction - This lecture introduces pattern, a problem that it solves & a formal UML diagram
2. Implementation Steps - This lecture will discuss how you'll implement this pattern in Java.
3. Example UML - We discuss the UML of the hands on problem we're going to solve.
4. Implementation - In this lecture we'll implement the design pattern in Java using Eclipse IDE
5. Implementation & Design Considerations - Some important points about performance, variations & practical advice on using the pattern
6. Real World Example - In this lecture we'll see how the pattern is used in real life by Java's own class library & popular frameworks like Spring, JSF
7. Comparison with Similar pattern - See how the pattern is different than another similar pattern.
8. Pitfalls - Many pattern have some drawbacks. This lecture will show you what those are.
9. Summary - This lecture will summarise all the information about the pattern.
As you can see, by breaking a single design pattern in smaller topics, you can easily watch only those parts that you need in future.
What is provided with the Course?
We have provided all code samples from the hands on lectures. You can download the starter code & follow along or you can download the finished code to study on your own.
All UML diagram with description of each role in the design pattern is provided as PDF in summary video. These slides are enough to quickly revise design pattern structure.
A PDF guide to all design pattern summaries with code samples and UML diagrams.
Who should take this Course?
Beginner as well as experience Developers.
Software Designers & Architects.
Instructor Details
- 4.5 Rating
7,300 Reviews
Coffee Powered Crew
We are programmers and artists from UK, USA and South Africa. We met each other over the years during conferences & other work related encounters. We also brought some excellent people we knew to create Coffee Powered Crew.
Coffee Powered Crew is based on only one goal, that is, to create experts in the leading programming languages, technologies and software applications. You can move ahead of competition only if you are an expert in your field. We believe that to be an expert you need to know more than just the syntax and commands. An expert needs to understand the concepts & fundamentals behind the technology or programming language. You need a proper training & experience to become an expert. We hope to help you with the proper training.
We believe a good training needs to provide proper explanation of concepts. That means not just throwing out some word jumble while instructor is typing away the code. A proper focused lecture on each important concept before using & applying that concept makes a good training. We have hired people to create learning aids like animations & drawings to explain concepts properly.
We are hoping that we'll be part of your journey to success and we'll get a chance to help you learn something new that can help you move ahead in your career.
Good Luck!
Coffee Powered Crew
More courses by Coffee Powered Crew
Version Control with Git - Concepts with Hands On Projects (2017)
4.4 (37 Reviews)
Provider: Udemy
Time: 5.2h
$19.99
More Java courses
Hibernate and Spring Data JPA: Beginner to Guru (2026)
4.8 (1,265 Reviews)
Provider: Udemy
Time: 30.3h
$84.99
Learn JAVA Programming - Beginner to Master (2026)
4.7 (31,368 Reviews)
Provider: Udemy
Time: 61.4h
$119.99
The Complete Java Certification Course (2025)
4.7 (30,462 Reviews)
Provider: Udemy
Time: 18.1h
$174.99
Oracle Java Certification - Pass the Associate 1Z0-808 Exam. (2025)
4.7 (6,236 Reviews)
Provider: Udemy
Time: 20.2h
$12.99
Reviews
By Steve Corbett on 4/6/2026
Very thorough coverage of all design patterns, with examples and UML for each. This is the only time I've ever seen Age of Empires used as an example in a software development course. My one criticism is that the information could have been condensed a bit better - many sections repeat the same information multiple times.
By Hutu Alexandru Dumitru on 10/5/2025
Course is good in explaining the design patterns. I suggest when you follow the course, you also check other source, just to get information in more details. Examples section is not greatest. Would be better to replace it with real life examples where this could be used. Also, implementation section could be better in some cases. Yet, I still consider it a course worth your time.
By Marcin Strankowski on 10/27/2023
Some examples of patterns were unintuitive, when I didn't understand those I had to go to refactoring guru page that had a more clear example that better displayed the purpose of a pattern. Also, while I understand that there are a lot of people who really want to go in depth on these, I feel that the course was a bit bloated overall and could be shortened by about 1/5 to 1/4. Nevertheless it was a decent course and the source code and the presentation will likely save me a bit of time in the future.
By Anonymized User on 10/13/2023
The course itself was quite good and explained well. The 4 start instead of 5 I give only for this course's poor audio quality. The audio level was so low that I have to amplify the volume so much to hear it properly that when I got any other system notification (message, email etc.) my speakers just jumped (and of course the sound at the moment was almost painful). I strongly recommend you to care more about audio quality.
By Marios Palaskos on 4/8/2023
They are like selling a high quality leather. You can then make your own shoes. The course is very well structured along with practical code examples conveys all necessary information to understand each design pattern. However, the knowledge gained by this course will be fully digested when the need to use a design pattern arises. Hope we see more courses from you!
By Helen Ma on 1/19/2023
This course is very comprehensive and the best design pattern tutorial in Udemy. I really like the comparisons between patterns and how patterns are applied to Java programming languages. The coding examples are precise. The instructor is very knowledgeable and replies to students' questions in details. I highly recommend this design pattern course.
By Pratiek Sanklecha on 4/27/2021
Better amongst the rest.... This topic is not very easy to cruise it takes demands your thorough attention. And So the courseware should be crisp and upto the point. This is that course. It is upto the point and crisp even then 17 hours is too much. Pro's: 1. Structure of Every Section (Intro, Implementation Steps, Comparison, Pitfalls, Summary) 2. Quiz Section 3. Close to Real Life Examples Improvements Required: 1. Composite Pattern & Flyweight Pattern is poorly explained, No good example & lack of theory i suggest to redo them. 2. Need to add some theory towards introduction of Design Patterns. Why Design Patterns? Who Drafted / Published & When? How they are used today? 3. Should add section for J2EE Design Patterns 4. Few commonly used patterns / architectures like MVC These all things are good in other courses available. Instructor is knowledgable & has taken significant effort in developing this tutorial.
By Franco Cespı on 1/5/2021
This is probably the best course that you can find on video format for learning design patterns. Every pattern is analyzed in the same way making the whole experience easy to follow. The explanation is done in a simple way but covering many details for each case. Examples are short but really useful to see an approximation of how you can implement a pattern. The only cons: 1- There are a few awkward syntactic uses of English on the slides. (I am not a native English speaker, I might be wrong). 2- I would like a challenge project where to put some of those patterns into use. The quizzes are good to check if you understand the concepts, but not to practice a pattern. Overall I am extremely satisfied with this course. I totally recommend it.
By Rajarao Kolluru on 11/14/2020
Excellent
By Manjula H on 11/14/2020
Found really a good course at last which gives detailed explanation on each of the design patterns.... Good thing about this is at the end of each section, summary is provided for quick look.
By Vishweshwar B on 10/25/2020
nice
By Alexandros Ioannidis on 10/21/2020
The content was great, the sound volume was a bit problematic.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 90 / 100







