Practical Software Design Patterns In C#
Published 6/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.36 GB | Duration: 3h 5m
Published 6/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.36 GB | Duration: 3h 5m
Build robust, scalable and manageable code with Design Patterns and Solid Principles in C# and .Net
What you'll learn
Write better robust, manageable and testable code
Improve your coding skills
Apply design pattern in your code
Follow design principles (SOLID)
Requirements
Knowledge of C# and OOP
Description
IntroductionDesign Patterns were introduced in 1994 by four authors: Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, who published the book "Elements of Reusable Object-Oriented Software," which became famous and widely used in Software development today. These authors are also known as the "Gang of Four."Design Patterns can be defined as reusable solutions to commonly occurring problems in software design.In this course, you will learn the design patterns and solid principles and know how to apply them in your code. You would also learn how to think of design patterns and know where to apply them when coding.Design Patterns make your code flexible, robust, scalable, manageable, and mature.This course coversSOLID Design PrinciplesSingle Responsibility PrincipleOpen-Closed PrincipleLiskov Substitution PrincipleInterface Segregation Principle Dependency Inversion PrincipleCreational Design PatternsSingletonFactoryAbstract FactoryPrototypeBuilderStructrural Design PatternsAdapterBridgeDecoratorFacadeProxyBehavioral Design PatternsCommandMediatorObserverStrategyWhat you needIf you are familiar with SOLID principles, this would give you a head start. Design patterns also make you understand the SOLID principle because they make heavy use of composition. If you are not familiar with SOLID, that is not a problem, all you need is a good understanding of C#.
Overview
Section 1: Introduction
Lecture 1 What are Design Patterns
Lecture 2 Why Design Patterns
Section 2: SOLID
Lecture 3 Software Design Principles (SOLID)
Section 3: Singleton
Lecture 4 Intro to Singleton
Lecture 5 Singleton Coding Example
Section 4: Factory
Lecture 6 Intro to Factory Method
Lecture 7 Structuring the Factory Method
Lecture 8 Factory Coding Example
Lecture 9 Factory Coding Example (Soccer Part 1)
Lecture 10 Factory Coding Example (Soccer Part 2)
Section 5: Abstract Factory
Lecture 11 Intro to Abstract Factory
Lecture 12 Structure of an Abstract Factory
Lecture 13 Abstract Factory Coding Example
Section 6: Prototype
Lecture 14 Intro to Prototype
Lecture 15 Prototype Coding Example
Section 7: Builders
Lecture 16 Intro to Builders
Lecture 17 Structure of a Builder
Lecture 18 Builder Coding Example
Lecture 19 Builder Coding Example 2 (Assignment)
Section 8: Facade
Lecture 20 Intro to Facade
Lecture 21 Structure of a Facade
Lecture 22 Facade Coding Example
Section 9: Adapter
Lecture 23 Intro to Adapter
Lecture 24 Adapter Coding Example
Section 10: Proxy
Lecture 25 Intro to Proxy
Lecture 26 Structure of a Proxy
Lecture 27 Proxy Coding Example
Lecture 28 Proxy Coding Example 2
Section 11: Decorator
Lecture 29 Intro to Decorators
Lecture 30 Structure of a Decorator
Lecture 31 Decorator Coding Example
Section 12: Bridge
Lecture 32 Intro to Bridge
Lecture 33 Structure of a Bridge
Lecture 34 Bridge Coding Example
Section 13: Iterator
Lecture 35 Intro to Iterators
Lecture 36 Structure of an Iterator
Lecture 37 Iterator Coding Example
Section 14: Strategy
Lecture 38 Intro to Strategy
Lecture 39 Structure of a Strategy
Lecture 40 Strategy Coding Example
Lecture 41 Strategy Coding Example 2
Section 15: Command
Lecture 42 Intro to Command
Lecture 43 Command Coding Example
Section 16: Mediator
Lecture 44 Intro to Mediator
Lecture 45 Structure of a Mediator
Lecture 46 Mediator Coding Example
Lecture 47 Intro to MediatR
Lecture 48 MediatR Coding Example
Section 17: Observer
Lecture 49 Intro to Observer
Lecture 50 Structure of an Observer
Lecture 51 Observer Coding Example
Section 18: Conclusion
Lecture 52 Next Steps
This course is for C# and .Net developers looking to broaden their software development skills and for junior developers looking to move to a senior development role by learning practical design patterns and principles with real-world examples.