Low Level System Design, Design Patterns & SOLID Principles

Low Level System Design, Design Patterns & SOLID Principles

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 69 lectures (8h 56m) | 3.75 GB

Master Proven Design Techniques and SOLID Principles to Build Robust and Scalable Systems!

Are you looking to take your Java programming skills to the next level and master the art of designing scalable, maintainable, and efficient software systems? In this course, Low Level System Design, Design Patterns & SOLID Principles, Prateek Narang, an experienced Software Engineer and Instructor and having worked with companies like Google, Scaler, Coding Minutes etc will guide you through the world of object-oriented design patterns, essential for building robust applications in real-world scenarios.

What You’ll Learn:

  • Understand the fundamental design patterns used in software engineering and how to apply them effectively in Java.
  • Explore creational, structural, and behavioral patterns, and their practical use cases.
  • Write cleaner, more efficient code by leveraging well-established design principles.
  • Learn how to improve low-level design for building scalable and maintainable applications.
  • Solve complex design problems with ease using proven design techniques.
Table of Contents

Introduction
1 Introduction
2 Course Logistics
3 Github Repository

Object Oriented Programming Recap
4 OOPS – Classes, Objects, Interfaces, Inheritance & Polymorphism
5 Small Note on Access Modifers
6 Unified Modelling Language (UML)

SOLID Principles
7 SOLID Principles
8 Single Responsibility Principle (SRP)
9 Open Close Principle (OCP)
10 Liskov Substiution Principle (LSP)
11 Interface Segregation Principle (ISP)
12 Dependency Inversion Principle (DIP)

Part-I Behavioural Design Patterns
13 Introduction to Design Patterns
14 Introduction to Behavioural Design Patterns

Memento Pattern
15 UndoRedo Problem Statement
16 Memento Pattern Summary
17 Solution using Memento Pattern

Observer Pattern
18 Problem – Publisher Subscriber Model
19 Solution – Observer Pattern
20 Implementation – Observer Pattern
21 Observer Pattern Benefits & Use Cases

Strategy Pattern
22 Strategy Pattern – Problem Statement
23 Strategy Pattern – Solution

Command Pattern
24 Command Pattern – Problem Statement
25 Command Pattern – Solution
26 Command Pattern – Benefits & Use Case

Template Method Pattern
27 Template Method Pattern – Problem Statement
28 Template Method Pattern – Solution

Iterator Pattern
29 Iterator Pattern – Problem Statement
30 Iterator Pattern – Solution
31 Iterator Pattern – Benefits & Java Iterables

State Pattern
32 State Pattern – Problem
33 State Pattern – Implementation & Benefits

Mediator Pattern
34 Mediator Pattern – Problem Statement
35 Mediator Pattern – Implementation
36 Mediator Pattern – Benefits & Use Cases

Part-II Creational Design Patterns
37 Introduction to Creational Patterns

Singleton Pattern
38 Singleton Pattern – Problem Statement
39 Singleton Pattern – Solution

Builder Design Pattern
40 Builder Design Pattern – Problem Statement
41 Builder Design Pattern – Solution

Factory Design Pattern
42 Factory Pattern – Problem
43 Factory Pattern – Solution

Abstract Factory Pattern
44 Abstract Factory Pattern – Problem
45 Abstract Factory Pattern – Code

Prototype Pattern
46 Prototype Pattern Problem
47 Prototype Pattern Solution

Part-III Structural Design Patterns
48 Structural Design Patterns

Adapter Pattern
49 Adapter Pattern – Problem
50 Adapter Pattern – Solution

Decorator Pattern
51 Decorator Pattern Problem
52 Decorator Pattern Solution

Proxy Pattern
53 Proxy Pattern Problem
54 Proxy Pattern Solution

Composite Pattern
55 Composite Pattern Problem
56 Composite Pattern Solution

Facade Pattern
57 Facade Pattern – Problem
58 Facade Pattern – Solution

FlyWeight Pattern
59 FlyWeight Pattern – Motivation
60 FlyWeight Pattern – Problem
61 FlyWeight Pattern – Solution

Project – Ride Sharing App
62 Problem Statement PDF
63 Ride Sharing App Problem & Requirements
64 Ride Sharing App Code V1 – Part 1
65 Ride Sharing App Code V1 – Part 2
66 Refactoring Ride Sharing App Code – 1
67 Refactoring Ride Sharing App Code – 2
68 Refactoring Ride Sharing App Code – 3
69 Refactoring Ride Sharing App Code – 4

Homepage