https://github.com/blendereru/object-oriented-programming-in-sharp
exploring design patterns and principles. 100% in C#
https://github.com/blendereru/object-oriented-programming-in-sharp
csharp design-patterns design-principles oop solid-principles uml
Last synced: 7 months ago
JSON representation
exploring design patterns and principles. 100% in C#
- Host: GitHub
- URL: https://github.com/blendereru/object-oriented-programming-in-sharp
- Owner: blendereru
- License: gpl-3.0
- Created: 2025-01-04T14:30:19.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-05-04T18:56:15.000Z (8 months ago)
- Last Synced: 2025-05-31T22:10:15.899Z (8 months ago)
- Topics: csharp, design-patterns, design-principles, oop, solid-principles, uml
- Language: C#
- Homepage:
- Size: 1.66 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Design Patterns and Principles
Design patterns and principles are essential concepts in programming that help developers write better,
more maintainable code. They provide structured solutions to common software design problems and promote
best practices in software development.Design patterns and principles are not interchangeable;
they serve different purposes:
### Design Patterns
* are documented and tested solutions for recurring problems in a given context.
* Provide a proven template to solve particular design challenges.
### Design principles
* General guidelines that help developers create better software architecture.
* Promote maintainability, scalability, and readability.
## Design pattern types
1. [Creational Patterns](https://github.com/blendereru/design-patterns-principles/blob/f3446e5549f44ea07d0e41b4eb23a765cb86abf7/src/Patterns/CreationalPatterns) - deal with object creation mechanisms, trying to create objects in a manner
suitable to the situation.
2. [Structural Patterns](https://github.com/blendereru/design-patterns-principles/blob/4af875d4b0fab16184693928c54ac929867bb314/src/Patterns/StructuralPatterns) - focus on class and object composition to form larger structures.
3. [Behavioral Patterns](https://github.com/blendereru/design-patterns-principles/blob/aec239815a320dd4fd0f82916f3b6265eacf66fc/src/Patterns/BehavioralPatterns) - focus on communication between objects.
## SOLID design principles
[SOLID](https://github.com/blendereru/design-patterns-principles/blob/d5b82c62c4aad951c073f2c4bc93d60750315236/src/Principles) is an acronym that represents five key design principles aimed at making software easier to manage
and extend.
## What i used ?
1. The code was mostly takes from [here](https://dotnettutorials.net/course/dot-net-design-patterns/)
and [here](https://dotnettutorials.net/lesson/single-responsibility-principle/)
2. The UML diagrams used to show the relation of classes was taken from [here](https://metanit.com/sharp/patterns/1.2.php)
3. A lot of terms were explored in [refactoring.guru](https://refactoring.guru/design-patterns/csharp)
## License
This project is licensed under the [GNU General Public License](https://github.com/blendereru/design-patterns-principles/blob/cd34413ff9bc39c8455c92d63590f33881f7bd0e/LICENSE).