{"id":29922272,"url":"https://github.com/kuuhaku86/design-patterns","last_synced_at":"2025-08-23T15:13:33.208Z","repository":{"id":110399071,"uuid":"417151136","full_name":"kuuhaku86/design-patterns","owner":"kuuhaku86","description":"Design Pattern in Various Language","archived":false,"fork":false,"pushed_at":"2022-05-16T06:22:30.000Z","size":1599,"stargazers_count":18,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-02T09:38:44.349Z","etag":null,"topics":["dart","design-patterns","examples","golang","javascript","php","python3","ruby","templates"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kuuhaku86.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2021-10-14T13:56:51.000Z","updated_at":"2023-04-29T09:10:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"c45c5837-0df5-4fac-adc4-1ee43e1391a1","html_url":"https://github.com/kuuhaku86/design-patterns","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kuuhaku86/design-patterns","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuuhaku86%2Fdesign-patterns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuuhaku86%2Fdesign-patterns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuuhaku86%2Fdesign-patterns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuuhaku86%2Fdesign-patterns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kuuhaku86","download_url":"https://codeload.github.com/kuuhaku86/design-patterns/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kuuhaku86%2Fdesign-patterns/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271754362,"owners_count":24815181,"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","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["dart","design-patterns","examples","golang","javascript","php","python3","ruby","templates"],"created_at":"2025-08-02T08:45:58.977Z","updated_at":"2025-08-23T15:13:33.202Z","avatar_url":"https://github.com/kuuhaku86.png","language":"PHP","readme":"# Design Patterns\n\nDesign Pattern Example in Various Language\n\n## What is Design Pattern?\n\nDesign patterns represent the best practices used by experienced object-oriented software developers. Design patterns are solutions to general problems that software developers faced during software development. These solutions were obtained by trial and error by numerous software developers over quite a substantial period of time.\n\n## Type of Design Pattern\n\nWe can group design pattern into three categories. \n\n### Creational Patterns\n\nThese design patterns provide a way to create objects while hiding the creation logic, rather than instantiating objects directly using new operator. This gives program more flexibility in deciding which objects need to be created for a given use case.\n\n### Structural Patterns\n\nThese design patterns concern class and object composition. Concept of inheritance is used to compose interfaces and define ways to compose objects to obtain new functionalities.\n\n### Behavioral Patterns\n\nThese design patterns are specifically concerned with communication between objects.\n\n## Example of Design Pattern\n\nThere is example design pattern for every type.\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eType\u003c/th\u003e\n            \u003cth\u003eExample\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=7\u003eStructural Patterns\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"/Adapter\"\u003eAdapter\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Bridge\"\u003eBridge\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Composite\"\u003eComposite\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Decorator\"\u003eDecorator\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Facade\"\u003eFacade\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Flyweight\"\u003eFlyweight\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Proxy\"\u003eProxy\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=6\u003eCreational Patterns\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"/Abstract%20Factory\"\u003eAbstract Factory\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Builder\"\u003eBuilder\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Factory%20Method\"\u003eFactory Method\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Object%20Pool\"\u003eObject Pool\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Prototype\"\u003ePrototype\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Singleton\"\u003eSingleton\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd rowspan=12\u003eBehavioral Patterns\u003c/td\u003e\n            \u003ctd\u003e\u003ca href=\"/Chain%20of%20Responsibility\"\u003eChain of Responsibility\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Interpreter\"\u003eInterpreter\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Iterator\"\u003eIterator\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Mediator\"\u003eMediator\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Memento\"\u003eMemento\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Null%20Object\"\u003eNull Object\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Observer\"\u003eObserver\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/State\"\u003eState\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Strategy\"\u003eStrategy\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Template%20Method\"\u003eTemplate Method\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ca href=\"/Visitor\"\u003eVisitor\u003c/a\u003e\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n## Link for Project Design\n\n- https://drive.google.com/drive/folders/1_NgANqSiI5ocgHpWbUWiWy2_Ys0v_frU?usp=sharing\n\n\n## Source\n- https://www.tutorialspoint.com/design_pattern/design_pattern_overview.htm\n- https://sourcemaking.com/design_patterns\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkuuhaku86%2Fdesign-patterns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkuuhaku86%2Fdesign-patterns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkuuhaku86%2Fdesign-patterns/lists"}