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, Eclipse 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:

Udemy

Rating 4.2 based on 254 ratings
Length 10.5 hours
Starts On Demand (Start anytime)
Cost $10
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 10 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.

Course was good in the beginning with easy to understand examples, but as the course progress, the examples are more difficult to understand.

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

Good Easy to understand and very comprehensive.

about design patterns in 6 reviews

This course gave me more knowledge about Java 8 and java programming than it gave me about design patterns.

In addition to learning about design patterns, I learned a ton about modern programming.

In combination with other on line materials, like UML's and more theory oriented lectures about design patterns, this is a good starting point to enter "the near infinite world of design patterns".

Examples are a bit tough to grasp considering a student has zero knowledge about design patterns.

little bit in 6 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.

Im software engineer, its a little bit fast and doesn't get in depth with the ideas of the pattern.

The content is relevant and the instructor is informative, but he goes a little bit too fast.

Simple and basic examples Im software engineer, its a little bit fast and doesn't get in depth with the ideas of the pattern.

네 잘맞아유 little bit fast Great course for design pattern!

my opinion in 6 reviews

Sure people with a skill of abstract imagination ability will disagree with me, but in my opinion you must always think about the average case , the UML diagram may be complex but i rather think that it would help to understand how all things connect.

But explainations are too fast and skippy to my opinion.

The course structure was really nice in my opinion.

In my opinion, the practical code is outstanding but somehow missing the concepts why design the said design pattern is needed and in which realtime scenario it will be used.

too fast in 6 reviews

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

On the downside, Dmitry goes too fast to let us fully understand and memorize on the first play but we can pause and rewind as often as needed.

single responsibility in 5 reviews

I don't think it serves the single responsibility.

not clear about how single responsibility works here.

It would be great if we show a GOD object class to start with and refactor it to show the single responsibility principle.

Careers

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.

Udemy

Rating 4.2 based on 254 ratings
Length 10.5 hours
Starts On Demand (Start anytime)
Cost $10
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