Skip to content

Educational programming series on how to model an automatic wash tunnel with SOLID principles & various design patterns.

License

Notifications You must be signed in to change notification settings

ledjon-behluli/SOLID-Wash-Tunnel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

SOLID Wash Tunnel is an educational programming series on how to model an automatic wash tunnel with SOLID principles & various design patterns. The programming language used throughout the project is C#.

The motivation for this project came after being asked by a friend the question:

I can understand the GoF design patterns and SOLID principles one-by-one, but fail to understand how to apply multiple of them in a project?

There are countless examples of SOLID & Design patterns around, but most of them use completely different examples for different patterns. I have failed to find an example or project where the author implemented all (or most) of the patterns.

Nothing is better for a junior/mid level developer than seeing a fully fledged example of the design patterns and their interaction to build a complete project.

SOLID Wash Tunnel tries to do exactly that!

During this series we will go over:

  • How to create a simple Inversion of Control container.
  • How to implement various design patterns and see their interactions.
  • Where we adhere to the SOLID principles and where not, and the reasoning behind it.

Domain

The domain as seen from the title is an automatic vehicle wash tunnel. Customers can send their vehicle to be wash by the tunnel. They use the UserPanel to configure various things like:

  • Select any of the built-in wash programs, or create a custom program.
  • Select whether they are an individual or company customer (They get discounts if they represent a company).
  • Receive an invoice at the end in the preferred currency.

Topics

  • Introduction to SOLID wash tunnel
  • Implementing a custom IoC container
  • Dependency Injection Technique
  • Simple Factory Pattern
  • Singleton Pattern
  • Command Message Pattern
  • Mediator Pattern
  • Service Locator Anti-Pattern
  • Fluent Builder Pattern
    • Part 1/3
    • Part 2/3
    • Part 3/3
  • Chain of Responsibility Pattern
  • Decorator Pattern
  • State Pattern
  • Visitor Pattern
  • Adapter Pattern
  • Observer Pattern
  • Proxy Pattern
  • Demo of the wash tunnel

You can find detailed explanations on some of the topics (more to come) on my website.


If you find it helpful, please consider giving it a ✰ and share it!

Copyright © 2021 Ledjon Behluli

About

Educational programming series on how to model an automatic wash tunnel with SOLID principles & various design patterns.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages