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 and may earn a commission when you buy through our links.

Get a Reminder

Send to:
Rating 4.1 based on 266 ratings
Length 10.5 total hours
Starts On Demand (Start anytime)
Cost $14
From Udemy
Instructor Dmitri Nesteruk
Download Videos Only via the Udemy mobile app
Language English
Subjects Programming
Tags Programming Languages Development

Get a Reminder

Send to:

Similar Courses

What people are saying

easy to understand

The course was interesting and extensive, the information are laid out clearly and are relatively easy to understand.

A lot of examples are easy to understand but others require a bit of experience in Java development (or watch the lesson a couple of times, "repetita iuvant").

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

Easy to understand and very comprehensive.

Very fast, Not able to grasp the exact info about SRP Relevant, in-depth and spot on It would be great if the examples are simple so it will be easy to understand.

I think, you clearly explained why we need to have classes with SRP Great course easy to understand little bit fast Great, fast talking, I like it.

lectures are easy to understand Not the best example.

Read more

well explained

The author of this course has put some real efforts and owes my money The design concepts are well explained.

It'd be better if at first a subjet will be well explained and later an example should be strognly introduced theoretically.

NA Very well explained.

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

It is very organised and well explained.

Very well explained concepts so far.

Very well explained.

Good stuff, it is good Excellent Nice This is awesome stuff Excellent course, well explained so far ok. it's interesting Clear explanation yes Very good Good

Read more

too fast

He speaks too fast as well.

Brilliant, but speak speed is too fast.

Goes too fast It's very crisp and to the point.

Little too fast to catch up.

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.

Simple and basic examples Well explained but too fast.

Read more

about design patterns

This is a very concise course about design patterns with clear examples and explanations.

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

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.

Read more

little bit

It can be a little bit difficult if you do not handle well Java very practical approach to the topic Abstract factory not understood as constructor is not private The lecturer speaks like a machine gun, simultaneously typing and jumping from one part of a code to another.

Nice course some code a little bit confusing or hard to understand.

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

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

Read more

well structured

Brilliant, engaging and extremely well structured course.

Fantastic course, the teacher was very engaging and the content was very well structured.

However, the quality of the scope covered in each lecture is well structured, and valuable knowledge.

Dense and well structured.

Initial presentation of the content is very well structured and organized.

Read more

my opinion

what still missing in my opinion: a general Class Diagram for each design pattern to better see the picture, and then a diagram for one of the examples.

I like it It's too much quickly explanations without simple examples 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.

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.

Read more

so much

Thank you so much for sharing your knowledge, this is one of the best course, I have taken on Udemy Obvious examples and tasks alternates with complex ones.

Thank you so much.

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

Read more

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.

Rating 4.1 based on 266 ratings
Length 10.5 total hours
Starts On Demand (Start anytime)
Cost $14
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