Skip to content

Design patterns with definition, use cases, UML documentation and c# implementation.

License

Notifications You must be signed in to change notification settings

ArminSmajlagic/Software-Design-Patterns

Repository files navigation

Design Patterns

What is a design pattern ?

Design patterns are general reusable solutions to commonly occurring problems in software design. They are pre-made blueprints that you can use to solve a recurring design problem in your code. The idea is to speed up the development process by providing well-tested, proven development/design paradigms. The pattern is not a specific piece of code, but a general concept for solving a particular problem. Design patterns are programming language independent strategies for solving a common problem. That means a design pattern represents an idea, not a particular implementation. You can follow the pattern details and implement a solution that suits the realities of your own program. By using design patterns, you can make your code more flexible, reusable, and maintainable.

Patterns are not algorithms because both concepts describe typical solutions to some known problems. While an algorithm always defines a clear set of actions that can achieve some goal, a pattern is a more high-level description of a solution. The code of the same pattern applied to two different programs may be different depending on the domain and the context that the given program is used for.

In this project i will try to describe the purpose and usage of each design pattern, offer visual representation with UML and implement it in C#.

What kindes of design patterns are there?

Design patterns differ by their complexity, level of detail and scale of applicability to the entire system being designed.

All patterns can be categorized by their intent(solution that they provide for a given problem) in the following categories:

  • Creational patterns

    • they provide object creation mechanisms that increase flexibility and reuse of existing code
  • Structural patterns

    • they explain how to assemble objects and classes into larger structures, while keeping these structures flexible and efficient
  • Behavioral patterns

    • they take care of effective communication and the assignment of responsibilities between objects

    Author: Armin Smajlagic

Releases

No releases published

Packages

No packages published

Languages