{"id":21835500,"url":"https://github.com/plopezgit/sprint3_t1_patterns_part_1","last_synced_at":"2025-10-08T07:43:32.276Z","repository":{"id":205348726,"uuid":"714018463","full_name":"plopezgit/Sprint3_T1_Patterns_Part_1","owner":"plopezgit","description":"Design pattern study","archived":false,"fork":false,"pushed_at":"2023-11-09T15:03:05.000Z","size":45,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-21T14:24:01.145Z","etag":null,"topics":["pattern-recognition","patterns","singleton-pattern","software-design"],"latest_commit_sha":null,"homepage":"https://scientificprogrammer.net/2020/01/30/an-easy-way-to-learn-design-patterns-in-software-development/","language":"Java","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/plopezgit.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":"2023-11-03T18:27:13.000Z","updated_at":"2023-11-14T16:38:50.000Z","dependencies_parsed_at":"2024-11-27T20:21:39.290Z","dependency_job_id":"5932d125-6047-4971-a005-c4d25734bf45","html_url":"https://github.com/plopezgit/Sprint3_T1_Patterns_Part_1","commit_stats":null,"previous_names":["plopezgit/sprint3_t1_patterns_part_1"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/plopezgit/Sprint3_T1_Patterns_Part_1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plopezgit%2FSprint3_T1_Patterns_Part_1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plopezgit%2FSprint3_T1_Patterns_Part_1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plopezgit%2FSprint3_T1_Patterns_Part_1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plopezgit%2FSprint3_T1_Patterns_Part_1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/plopezgit","download_url":"https://codeload.github.com/plopezgit/Sprint3_T1_Patterns_Part_1/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/plopezgit%2FSprint3_T1_Patterns_Part_1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278909715,"owners_count":26066887,"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-10-08T02:00:06.501Z","response_time":56,"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":["pattern-recognition","patterns","singleton-pattern","software-design"],"created_at":"2024-11-27T20:21:34.188Z","updated_at":"2025-10-08T07:43:32.249Z","avatar_url":"https://github.com/plopezgit.png","language":"Java","readme":"# Sprint3_T1_Patterns_Part_1\n\n\n_Description:_\n\nIn this practice we will learn to identify and build programs using design patterns. The use of patterns is fundamental in the construction of extensible and reusable software. The Java language, as well as all software frameworks, are made according to the most important software patterns.\n\n_Targets:_ \n\nLearn to identify and handle software construction patterns.\n\n\n- Level 1\n\nIn all exercises, create a project with a Main class that demonstrates the use of the pattern (with the necessary invocations).\n\n**Singleton**\n\nCreate a class that replicates the operation of the 'Undo' command. This class will be used by the Main class, which will allow entering options by console.\n\nThe 'Undo' class must save the last commands entered. It should allow adding or removing commands, as well as listing the last commands entered (similar to the 'history' command in Linux).\n\nThe 'Undo' class must implement a Singleton pattern.\n\n- Level 2\n\n**Abstract Factory**\n\nCreate a small manager of international phone numbers and addresses.\n\nThe application must allow international addresses and phone numbers to be added to the address book. Considering the different formats of different countries, it builds the phone book, addresses and phones by implementing an Abstract Factory pattern.\n\n- Level 3\n\n**Command**\n\nDesign a parking lot of 4 vehicles: a car, a bicycle, a plane and a boat.\nIt shows how the Command pattern works that implements the start, accelerate, and brake methods for each vehicle type.\n\n\nUtil ref:\n\n\u003ehttps://scientificprogrammer.net/2020/01/30/an-easy-way-to-learn-design-patterns-in-software-development/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplopezgit%2Fsprint3_t1_patterns_part_1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fplopezgit%2Fsprint3_t1_patterns_part_1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fplopezgit%2Fsprint3_t1_patterns_part_1/lists"}