Set Reminder Save for later

Design Patterns in Java

Course Overview

This course provides a comprehensive overview of Design Patterns in Java from a practical perspective. This course in particular covers patterns with the use of:

  • The latest versions of the Java programming language
  • Use of modern programming approaches: dependency injection, reactive programming and more
  • Use of modern developer tools such as IntelliJ IDEA
  • Discussions of pattern variations and alternative approaches

This course provides an overview of all the Gang of Four (GoF) design patterns as outlined in their seminal book, together with modern-day variations, adjustments, discussions of intrinsic use of patterns in the language.

What are Design Patterns?

Design Patterns are reusable solutions to common programming problems. They were popularized with the 1994 book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (who are commonly known as a Gang of Four, hence the GoF acronym).

The original book was written using C++ and Smalltalk as examples, but since then, design patterns have been adapted to every programming language imaginable: C#, Java, PHP and even programming languages that aren't strictly object-oriented, such as JavaScript.

The appeal of design patterns is immortal: we see them in libraries, some of them are intrinsic in programming languages, and you probably use them on a daily basis even if you don't realize they are there.

What Patterns Does This Course Cover?

This course covers all the GoF design patterns. In fact, here's the full list of what is covered:

  • SOLID Design Principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle and Dependency Inversion Principle
  • Creational Design Patterns: Builder, Factories (Factory Method and Abstract Factory), Prototype and Singleton
  • Structrural Design Patterns: Adapter, Bridge, Composite, Decorator, Façade, Flyweight and Proxy
  • Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Null Object, Observer, State, Strategy, Template Method and Visitor

Who Is the Course For?

This course is for Java developers who want to see not just textbook examples of design patterns, but also the different variations and tricks that can be applied to implement design patterns in a modern way. For example, the use of recursive generics helps us build fluent interfaces even when inheritance is involved.

Presentation Style

This course is presented as a (very large) series of live demonstrations being done in IntelliJ IDEA and presented using the Kinetica rendering engine. Kinetica removes the visual clutter of the IDE, making you focus on code, which is rendered perfectly, whether you are watching the course on a big screen or a mobile phone.

Most demos are single-file, so you can download the file attached to the lesson and run it in IntelliJ, Eclupse or another IDE of your choice.

This course does not use UML class diagrams; all of demos are live coding. I use IntelliJ and various Maven packages where necessary.

Get Details and Enroll Now

OpenCourser is an affiliate partner of Udemy.

Get a Reminder

Not ready to enroll yet? We'll send you an email reminder for this course

Send to:


Rating 4.2 based on 109 ratings
Length 10.5 hours
Starts On Demand (Start anytime)
Cost $11
From Udemy
Instructor Dmitri Nesteruk
Download Videos Only via the Udemy mobile app
Language English
Subjects Programming
Tags Programming Languages Development

Get a Reminder

Get an email reminder about this course

Send to:

What people are saying

We analyzed reviews for this course to surface learners' thoughts about it

easy to understand in 5 reviews

clear straight explanations It would be great if the examples are simple so it will be easy to understand.

Easy to understand and very comprehensive.

Good to understand the basic concept Até agora muito bom e didático very good explanation Great course easy to understand not clear about how single responsibility works here.

looking good so far lectures are easy to understand The first instrutor out of 5 i had that i dont need to speed up to 1.5 or 2.

Very good English, in general very clear speech Course was good in the beginning with easy to understand examples, but as the course progress, the examples are more difficult to understand.

well explained in 5 reviews

Very well explained.

Very well explained concepts so far.

kesşke almasaydım bu eğitimi Well explained but too fast.

Nice yes Excellent course, well explained it's interesting Clear explanation Very good Good stuff, Awesome tutorial.

I know things I don't know before, well explained.

very clear in 5 reviews

The only flaw is that some explanations are not very clear, but I'm talking about one or two cases in a ten hour course.

Very clear explanation of concepts and brilliant programming technique during demonstration step.

Very clear and concise with good examples It's clear with a good plan.

Bez będnych ozdobników Very clear explanations, nicely selected examples, keeps you interested, I learned some stuff about Java already.

for design patterns in 4 reviews

Overall, unnecessarily techincal for design patterns.

Personally i don't feel that i learn something new from this course rather it helps to refresh my understanding for design patterns and some new java 9 syntax.

This course is among the best Java design patterns courses and trust me I have searched a lot of courses for design patterns before enrolling in this one so I can go beyond that and say it is "the best one on Udemy" for me.

Best course for design patterns on udemy.

clear explanations in 3 reviews

It would be nice to have some graphic examples to understand all design patterns better, anyway this is a nice course because it has clear explanations.

clear explanations and easy to follow Nicely narrated, deep in concepts Love this course.

so much in 2 reviews

The examples sometimes calls forth so much expertise in java that I sometimes would lose focus on understanding the scenario or concept Dmitri was trying to convey, and would get distracted by the doubt on my expertise as a java developer, despite being one for a few years :) Of course, I took that positively and actually took it as a nice wake-up call, which is fantastic, however wish the examples were a little bit simpler in terms of complexity of the java code so that my focus would remain on the intricacies of the patterns and not the code.

so much I have learned and so much I’m still learning every time i watch his courses.


An overview of related careers and their average salaries in the US. Bars indicate income percentile.

Research Tech, Design/Production Specialist $43k

Freelance Interior design $47k

Account Design Specialist $58k

Web Design Contractor $77k

Set Renderer/ Prop Design $80k

switchgear design and construction $95k

Mold Design Engineering (CAD) $104k

LNG Pressure Vessel & Mechanical Design Engineer Lead $124k

Senior Substation Design/P&C/Relay/Automation/SCADA Engineer $127k

Project Manager, Systems Design & Development $132k

ASIC Design Engineer 3 $185k

Software Design Engineer in Test Contractor 2 $203k

Write a review

Your opinion matters. Tell us what you think.


Rating 4.2 based on 109 ratings
Length 10.5 hours
Starts On Demand (Start anytime)
Cost $11
From Udemy
Instructor Dmitri Nesteruk
Download Videos Only via the Udemy mobile app
Language English
Subjects Programming
Tags Programming Languages Development

Similar Courses

Sorted by relevance

Like this course?

Here's what to do next:

  • Save this course for later
  • Get more details from the course provider
  • Enroll in this course
Enroll Now