{"id":24182611,"url":"https://github.com/azeheruddin-khan/designpatterns","last_synced_at":"2026-02-12T04:52:51.593Z","repository":{"id":269995488,"uuid":"909076968","full_name":"azeheruddin-khan/DesignPatterns","owner":"azeheruddin-khan","description":"Project : Design Patterns Examples in C#","archived":false,"fork":false,"pushed_at":"2025-01-10T17:58:43.000Z","size":1053,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-10T18:55:19.441Z","etag":null,"topics":["c-sharp","csharp","csharp-code","design-pattern","design-patterns-for-humans","designpattern","designpatterndemo","designpatterns","software-development"],"latest_commit_sha":null,"homepage":"https://bookmarkit.in/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/azeheruddin-khan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-27T17:17:31.000Z","updated_at":"2025-01-10T17:58:47.000Z","dependencies_parsed_at":"2024-12-27T18:26:45.685Z","dependency_job_id":"2be7d807-5c4a-4224-a4f6-92e88794327c","html_url":"https://github.com/azeheruddin-khan/DesignPatterns","commit_stats":null,"previous_names":["azeheruddin-khan/designpatterns"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azeheruddin-khan%2FDesignPatterns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azeheruddin-khan%2FDesignPatterns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azeheruddin-khan%2FDesignPatterns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azeheruddin-khan%2FDesignPatterns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azeheruddin-khan","download_url":"https://codeload.github.com/azeheruddin-khan/DesignPatterns/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233711034,"owners_count":18717952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c-sharp","csharp","csharp-code","design-pattern","design-patterns-for-humans","designpattern","designpatterndemo","designpatterns","software-development"],"created_at":"2025-01-13T08:13:57.766Z","updated_at":"2025-09-21T04:31:49.529Z","avatar_url":"https://github.com/azeheruddin-khan.png","language":"C#","readme":"# DesignPatterns\nThis repository contains comprehensive structural and real-world examples of GoF (Gang of Four) design patterns implemented in the C# programming language. It serves as a quick reference, and I plan to continuously add more real-world examples in the future.\n\n\u003ch1\u003eCreational Patterns:\u003c/h1\u003e\n\u003cul\u003e \n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/AbstractFactory.Structural\" target=\"_blank\"\u003eAbstract Factory\u003c/a\u003e -- Creates an instance of several families of classes \u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Builder.Structural\" target=\"_blank\"\u003eBuilder\u003c/a\u003e -- Separates object construction from its representation \u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/FactoryMethod.Structural\" target=\"_blank\"\u003eFactory Method\u003c/a\u003e -- Creates an instance of several derived classes \u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Prototype.Structural\" target=\"_blank\"\u003ePrototype \u003c/a\u003e -- A fully initialized instance to be copied or cloned(Shallow or Deep Copy) \u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Singleton.Structural\" target=\"_blank\"\u003e Singleton\u003c/a\u003e --  A class of which only a single instance can exist \u003c/li\u003e\n\u003c/ul\u003e\n\n\u003ch1\u003eStructural Patterns:\u003c/h1\u003e\n \u003cul\u003e\n   \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Adapter.Structural\" target=\"_blank\"\u003eAdapter   \u003c/a\u003e--Match interfaces of different classes\u003c/li\u003e    \n   \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Bridge.Structural\" target=\"_blank\"\u003eBridge    \u003c/a\u003e--Separates an object’s interface from its implementation\u003c/li\u003e\n   \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Composite.Structural\" target=\"_blank\"\u003eComposite \u003c/a\u003e--A tree structure of simple and composite objects\u003c/li\u003e\n   \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Decorator.Structural\" target=\"_blank\"\u003eDecorator \u003c/a\u003e-- Add responsibilities to objects dynamically\u003c/li\u003e\n   \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Facade.Structural\" target=\"_blank\"\u003eFacade   \u003c/a\u003e--\tA single class that represents an entire subsystem \u003c/li\u003e\n   \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Flyweight.Structural\" target=\"_blank\"\u003eFlyweight \u003c/a\u003e-- A fine-grained instance used for efficient sharing\u003c/li\u003e\n   \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Proxy.Structural\" target=\"_blank\"\u003e Proxy \u003c/a\u003e -- An object representing another object\u003c/li\u003e\n \u003c/ul\u003e\n\n\u003ch1\u003eBehavioral Patterns:\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e \u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/ChainofResponsibility.Structural\" target=\"_blank\"\u003eChain of Responsibility\u003c/a\u003e --A way of passing a request between a chain of objects \u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Command.Structural\" target=\"_blank\"\u003eCommand\u003c/a\u003e--Encapsulate a command request as an object\u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Interpreter\" target=\"_blank\"\u003eInterpreter\u003c/a\u003e--A way to include language elements in a program\u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Iterator.Structural\" target=\"_blank\"\u003eIterator\u003c/a\u003e--Sequentially access the elements of a collection\u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Mediator.Structural\" target=\"_blank\"\u003eMediator \u003c/a\u003e-- Defines simplified communication between classes\u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Memento.Structural\" target=\"_blank\"\u003eMemento \u003c/a\u003e-- Capture and restore an object's internal state\u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Observer.Structural\" target=\"_blank\"\u003eObserver\u003c/a\u003e-- \tA way of notifying change to a number of classes\u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/State.Structural\" target=\"_blank\"\u003eState \u003c/a\u003e-- Alter an object's behavior when its state changes\n    \u003cul\u003e\n      \u003cli\u003e\n          \u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/State.TrafficLightSystem\" target=\"_blank\"\u003eTraffic Light System \u003c/a\u003e\n      \u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Strategy.Structural\" target=\"_blank\"\u003eStrategy \u003c/a\u003e-- Encapsulates an algorithm inside a class\u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/TemplateMethod.Structural\" target=\"_blank\"\u003eTemplate Method \u003c/a\u003e-- Defer the exact steps of an algorithm to a subclass\n     \u003cul\u003e \n      \u003cli\u003e\n          \u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/TemplateMethod.ETLProcess\" target=\"_blank\"\u003eETL Process \u003c/a\u003e\n      \u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003ca href =\"https://github.com/azeheruddin-khan/DesignPatterns/tree/main/Visitor.Structural\" target=\"_blank\"\u003e Visitor \u003c/a\u003e -- Defines a new operation to a class without change\u003c/li\u003e\n\u003c/ul\u003e\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazeheruddin-khan%2Fdesignpatterns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazeheruddin-khan%2Fdesignpatterns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazeheruddin-khan%2Fdesignpatterns/lists"}