Design Patterns in Java

Discover the modern implementation of design patterns in Java

  • Dmitri Nesteruk
  • 4.4
  • (7242 reviews)
  • 10.5 hrs
  • 123 lectures
  • Udemy
Design Patterns in Java

What you will learn?

  • Recognize and apply design patterns
  • Refactor existing designs to use design patterns
  • Reason about applicability and usability of design patterns

Your trainer

Dmitri Nesteruk

Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009.

123 lessons

Easy to follow lectures and videos covering subject details.

10.5 hours

This course includes hours of video material. Watch on-demand, anytime, anywhere.

Certificate of Completion

You will earn a Certificate of Completion at the end of this course.

Course curriculum

  • Introduction05:11
  • Overview00:52
  • Single Responsibility Principle (SRP)11:47
  • Open-Closed Principle (OCP)18:00
  • Liskov Substitution Principle (LSP)09:42
  • Interface Segregation Principle (ISP)09:08
  • Dependency Inversion Principle (DIP)15:16
  • Summary02:26
  • Gamma Categorization03:36
  • Overview01:43
  • Builders in Java06:18
  • Builder09:39
  • Fluent Builder02:21
  • Fluent Builder Inheritance with Recursive Generics09:25
  • Faceted Builder09:20
  • Builder Coding Exercise1 question
  • Summary00:57
  • Overview03:08
  • Factory Method07:51
  • Factory04:27
  • Abstract Factory13:02
  • Factory Coding Exercise1 question
  • Summary01:05
  • Overview01:59
  • Don't Use Cloneable11:13
  • Copy Constructors02:49
  • Copy Through Serialization03:56
  • Prototype Coding Exercise1 question
  • Summary01:08
  • Overview02:43
  • Basic Singleton03:09
  • Serialization Problems07:23
  • Static Block Singleton03:46
  • Laziness and Thread Safety04:55
  • Inner Static Singleton02:30
  • Enum Based Singleton07:12
  • Monostate03:54
  • Multiton06:38
  • Testability Issues09:53
  • Singleton in Dependency Injection06:52
  • Singleton Coding Exercise1 question
  • Summary02:15
  • Overview02:36
  • Vector/Raster Demo08:42
  • Adapter Caching07:53
  • Adapter Coding Exercise1 question
  • Summary01:10
  • Overview01:46
  • Bridge09:11
  • Bridge Coding Exercise1 question
  • Summary00:21
  • Overview01:36
  • Geometric Shapes07:54
  • Neural Networks09:07
  • Composite Coding Exercise1 question
  • Summary01:10
  • Overview01:32
  • String Decorator04:45
  • Dynamic Decorator Composition07:59
  • Static Decorator Composition07:23
  • Adapter-Decorator08:15
  • Decorator Coding Exercise1 question
  • Summary01:25
  • Overview03:08
  • Façade09:22
  • Summary01:25
  • Overview02:21
  • Repeating User Names06:18
  • Text Formatting10:19
  • Flyweight Coding Exercise1 question
  • Summary01:38
  • Overview02:07
  • Protection Proxy04:26
  • Property Proxy06:35
  • Dynamic Proxy for Logging09:37
  • Proxy vs. Decorator01:18
  • Proxy Coding Exercise1 question
  • Summary00:46
  • Overview03:33
  • Method Chain11:06
  • Command Query Separation01:28
  • Broker Chain14:10
  • Chain of Responsibility Coding Exercise1 question
  • Summary00:58
  • Overview02:11
  • Command07:09
  • Undo Operations05:30
  • Command Coding Exercise1 question
  • Summary01:09
  • Overview03:15
  • Handmade Interpreter: Lexing07:38
  • Handmade Interpreter: Parsing09:12
  • ANTLR02:44
  • Interpreter Coding Exercise1 question
  • Summary01:03
  • Overview01:34
  • Tree Traversal12:07
  • Array-Backed Properties09:56
  • Iterator Coding Exercise1 question
  • Summary01:12
  • Overview01:13
  • Chat Room10:00
  • Reactive Extensions Event Broker07:03
  • Mediator Coding Exercise1 question
  • Summary01:16
  • Overview01:41
  • Memento07:22
  • Memento for Interop03:45
  • Memento Coding Exercise1 question
  • Summary01:08
  • Overview02:05
  • Null Object04:30
  • Dynamic Null Object07:28
  • Null Object Coding Exercise1 question
  • Summary01:45
  • Overview01:24
  • Observer and Observable08:26
  • An Event Class09:31
  • The Problem with Dependent Properties02:30
  • Observable Coding Exercise1 question
  • Summary01:03
  • Overview03:08
  • Classic Implementation07:34
  • Handmade State Machine09:37
  • Spring Statemachine10:29
  • State Coding Exercise1 question
  • Summary01:01
  • Overview01:50
  • Dynamic Strategy10:04
  • Static Strategy04:50
  • Strategy Coding Exercise1 question
  • Summary00:26
  • Overview01:29
  • Template Method06:28
  • Template Method Coding Exercise1 question
  • Summary00:45
  • Overview02:47
  • Intrusive Visitor05:04
  • Reflective Visitor06:02
  • Classic Visitor (Double Dispatch)09:33
  • Acyclic Visitor09:38
  • Visitor Coding Exercise1 question
  • Summary01:17
  • End of Course00:48
  • Bonus Lecture: Other Courses at a Discount00:21
Online Courses

Learning Java doesn't have to be hard. Here is our curated list of recommended online courses that will guide you step-by-step in the learning process.

Learn more
Books

Are you an avid book reader? Do you prefer paperback, or maybe Kindle version? Take a look at our curated list of Java related books and take yourskills to the next level.

Learn more
YouTube videos

The number of high-quality and free Java video tutorials is growing fast. Check this curated list of recommended videos - there is no excuse to stop learning.

Learn more