Autoplay
Autocomplete
Previous Lesson
Complete and Continue
SOLID Principles & Design Pattern in Java
Introduction
Introduction (1:18)
SOLID Principles
What are SOLID principles? (2:48)
S - Single Responsibility Principle
Single responsibility principle introduction (4:17)
Single responsibility principle example (13:33)
Exercise
Solution (8:24)
O - Open/Closed Principle
The open/closed principle introduction (6:25)
The open/closed principle example (11:16)
Exercise
Solution (3:35)
L - Liskov Substitution Principle
Liskov substitution principle (3:50)
Liskov substitution principle example (11:03)
I - Interface Segregation Principle
Interface segregation principle (2:29)
Interface segregation principle example (8:22)
Example
Solution (5:42)
D - Dependency Inversion
Dependency inversion principle introduction (5:52)
Inversion of control - dependency injection (5:59)
Dependency inversion principle example (10:16)
Exercise
Solution (7:21)
Design Patterns
What are design patterns? (2:13)
CREATIONAL DESIGN PATTERNS
Creational design patterns
Singleton Pattern
What is the singleton pattern? (1:52)
Singleton pattern example (7:40)
Singleton pattern with enums (3:29)
Factory Pattern
Factory pattern introduction (2:55)
Factory pattern example (5:51)
Abstract factory pattern example (8:03)
Builder Pattern
Builder pattern introduction (5:06)
Builder pattern example - avoiding telescopic constructors (9:08)
Why to use builder pattern? (6:39)
Prototype Pattern
What is the prototype pattern? (4:16)
Prototype pattern example (3:40)
BEHAVIORAL DESIGN PATTERNS
Behavioral design patterns
Strategy Pattern
What is the strategy pattern? (5:07)
Strategy pattern example (8:12)
Why to use strategy pattern? (5:51)
Exercise
Solution (4:14)
Observer Pattern
Observer pattern introduction (3:39)
Observer pattern example (10:04)
Observer pattern with user interface components (Swing) (6:05)
Exercise - the basics of algorithmic trading (4:18)
Solution (6:41)
Command Pattern
What is the command pattern? (5:05)
Command pattern example (7:30)
Queuing model with the command pattern (8:10)
Template Pattern
Template pattern introduction (3:12)
Template pattern example (8:53)
Exercise
Solution
NULL Object Pattern
Null object pattern introduction (3:30)
Null object pattern example (9:02)
Avoiding null values with Optional (3:16)
Visitor Pattern
Visitor pattern introduction (5:02)
Visitor pattern implementation (9:06)
Exercise
Solution (7:22)
STRUCTURAL DESIGN PATTERNS
Structural design patterns
Decorator Pattern
Decorator pattern introduction (2:34)
Decorator pattern example (8:10)
Facade Pattern
Facade pattern introduction (2:39)
Facade pattern example (5:55)
Flyweight Pattern
Flyweight pattern introduction (4:56)
Flyweight pattern example (9:16)
String interning - string constant pool in JVM (5:39)
Adapter Pattern
Adapter pattern introduction (3:53)
Adapter pattern example (4:12)
Exercise
Solution (4:53)
Adapter pattern in the Java programming language (2:54)
Model-View-Controller (MVC) Application
Model-view-controller introduction (3:50)
Model-view-controller - Model (1:38)
Model-view-controller - View (5:24)
Model-view-controller - Controller (4:47)
What is the problem with MVC? (2:33)
Software Architectural Styles
The monolithic architecture (5:48)
What are the problems with monolithic apps? (3:56)
Microservices architecture (6:46)
BONUS
Service locator introduction (6:20)
Service locator pattern implementation (12:40)
JNDI and service locator pattern (2:51)
Source Code
Source code
What is the command pattern?
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock