Software Architectures (SOLID) & Design Patterns in Java (Udemy.com)
A guide to Create Smart, Reusable Softwares with SOLID Principles and Design Patterns + System Design, Scalability
Created by: Holczer Balazs
Last updated September 2026
What you will learn
- SOLID principles
- understand the core of design patterns
- object oriented design
- single responsibility principle
- open / closed principle
- Liskov substitution principle
- the interface segregation principle
- the dependency inversion principle
- creational design patterns (singleton pattern, factory pattern, builder pattern and prototype pattern)
- behavioral design patterns (strategy pattern, command pattern, visitor pattern and template pattern)
- structural design patterns (adapter pattern, facade pattern and decorator pattern)
How it compares
Against the other 231 rated Udemy courses in Java on CourseDuck:
- Rating4.6 out of 5higher than 71% of them
- Reviews3,772#62 of 232 by number of reviews
- Length9.4 hoursshorter than 49% of them
- Last updatedSeptember 2026more recently than 94% of them
Course Description
Are you ready to take your coding skills to the next level? This course is your gateway to writing clean, maintainable, and scalable software by mastering two of the most important pillars of software architecture: SOLID principles and design patterns.
We’ll start by diving deep into the SOLID principles — five core guidelines every professional developer should know. You’ll not only learn the theory behind each principle but also see how to implement them in Java through hands-on examples.
Next, we’ll explore the world of design patterns, the time-tested solutions to common software design problems. You’ll learn how these patterns help you write flexible and reusable code — an essential skill as software systems become increasingly complex.
Section 1 - SOLID Principles
what are SOLID principles?
single responsibility principle
open closed principle
Liskov's substitution principle
interface segregation principle
dependency inversion principle
what is dependency injection?
Section 3 - Creational Design Patterns
what are creational design patterns?
singleton pattern
factory pattern
abstract factory pattern
builder pattern
prototype pattern
Section 2 - Behavioral Design Patterns
what are behavioral design patterns?
strategy pattern
observer pattern
command pattern
iterator pattern
template pattern and null object pattern
visitor pattern
Section 3 - Structural Design Patterns
what are structural design patterns?
decorator pattern
flyweight pattern
facade pattern
adapter pattern
composite pattern
bridge pattern
Section 4 - API Design
SOAP
RPC
REST
Section 5 - Software Architectures
monolithic architecture
layered (n-tier) architecture
service oriented architecture (SOA)
micorservice architecture
Section 6 - Data Storage Design
relational databases
non-relational databases
scaling relational and non-relational databases
replication and sharding
CAP theorem
While the implementation will be in Java, the concepts are language-agnostic and valuable to any developer, regardless of your tech stack.
This is a practical course — I strongly encourage you to code along and re-implement the examples yourself. This is the best way to build a strong foundation and internalize the patterns and principles we’ll cover.
Whether you're a junior developer looking to build solid habits or an experienced programmer aiming to sharpen your design skills, this course is for you.
Thanks for joining — now let’s dive in and level up your software design skills!
Instructor Details
- 4.6 Rating
3,772 Reviews
Holczer Balazs
My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model.
Take a look at my website if you are interested in these topics!
More courses by Holczer Balazs
Python Data Structures And Algorithms: Practical Course (2026)
4.7 (4,432 Reviews)
Provider: Udemy
Time: 23.6h
$16.99
Concurrency, Multithreading and Parallel Computing in Java (2026)
4.5 (4,034 Reviews)
Provider: Udemy
Time: 14.4h
$10.99
Introduction to Collections, Generics & Reflection in Java (2026)
4.5 (3,649 Reviews)
Provider: Udemy
Time: 11h
$10.99
Algorithms Data Structures in Java #1 (+INTERVIEW QUESTIONS) (2026)
4.7 (3,235 Reviews)
Provider: Udemy
Time: 22.1h
$13.99
Quantitative Finance & Algorithmic Trading in Python (2026)
4.6 (2,714 Reviews)
Provider: Udemy
Time: 18.3h
$13.99
Java Programming: Step by Step from A to Z (2019)
4.5 (2,429 Reviews)
Provider: Udemy
Time: 8.9h
$84.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 Anonymized User on 10/8/2025
7 years ago, I once read a book known as 'Gang of Four Design Patterns', however, I could not understand the book and put it aside, to prepare for Oracle Certified Associate (OCA) Java certification, which deepen my usage of interface and classes in Java. With the help of this Udemy course, I have gained knowledge and greater appreciation for these design patterns. Now, i can create more interesting projects myself :) Thank you Holczer Balazs!
By Daniel Chmielewski on 3/23/2024
Yes, it was a good match but sometimes the explanations and coding examples were a bit too fast and not enough detail was covered under some of the more complex concepts. Quizzes at the end of modules should be more difficult and should contain more questions.
By Aaron Lanning on 5/19/2023
Fantastic Overview of Design Patterns and SOLID Principles. Real-world examples and useful exercises to reinforce the concepts. The slides and quizzes helped to reinforce learning. I definitely recommend coding along with examples and doing the exercises. Would also serve as good reference moving forward!
By Surekha Mahadevappa on 6/22/2022
I bought this course thinking that I would know about the design patterns well. But this course seems to be a very basic one, no examples given or explained. The information given here seems to generic. If anyone wants to learn design patterns in deep, this is not the one at all.
By José Navío on 2/11/2022
Very good course. Explains difficult concepts in a simple way. I understood what the university did not teach me or explain in a bad way. The code examples are very good, I understood the ones with a black background better because of the font size. Those with a white background were difficult for me to understand. If it wasn't for that I would give it 5 stars.
By Stefano Santilli on 11/1/2021
I think you have created a great course. It is a complete course that goes from the principles (SOLID) to the GoF patterns and also to higher level patterns like MVC and Service Locator. The explanation is clear with good examples. Thanks and good
By Tuan Le on 8/23/2021
Khóa học giúp tôi code được gọn gàng và giải quyết được nhiều bài toán thực tế trong quá trình phát triển ứng dụng. Tuy nhiên tôi vẫn muốn có nhiều ví dụ liên quan tới thực tế hơn nữa với độ phức tạp cao hơn một chút để dễ hình dung trong thực tế làm dự án.
By Yixuan Li on 3/27/2021
The course is really good for learning design patterns for the first time or refreshing design patterns knowledge. Although the examples are simple, it gives and conveys the idea in a straight-forward way. The course could be better if there is a section including more complex examples for each pattern and comparisons over patterns on certain real-world problem (but the workload will be large). Overall, great course. Thank you so much.
By Dineth Senevirathne on 11/25/2020
This course provides a step by step guide to learn design patterns people who are new to Java Programming. But some examples are bit confusing. But you can always refer other online sources like "baeldung" and "journaldev" to get a total understanding.
By Jeffery Yule on 11/19/2020
This course helped me gain a deeper understanding of Design Patterns but did not really reinforce the learning with exercises. I will have to dig deeper into the downloaded course materials.
By Sandeep Gubrelay on 11/18/2020
Course content is good, instructor is also having good knowledge over the topic..
By Ashish Kumar on 11/15/2020
Useful and interesting lesson.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 92 / 100












