{"id":26836985,"url":"https://github.com/julianamancera/labassign5_solid-principles","last_synced_at":"2025-03-30T16:35:01.177Z","repository":{"id":284149431,"uuid":"953930841","full_name":"JulianaMancera/LabAssign5_SOLID-Principles","owner":"JulianaMancera","description":"Software Engineering 2 - SOLID Principles: Laboratory Assignment 5","archived":false,"fork":false,"pushed_at":"2025-03-24T11:48:32.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T12:41:04.919Z","etag":null,"topics":["order","software-engineering","solid-principles"],"latest_commit_sha":null,"homepage":"","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/JulianaMancera.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":"2025-03-24T10:00:16.000Z","updated_at":"2025-03-24T11:50:41.000Z","dependencies_parsed_at":"2025-03-24T12:41:11.491Z","dependency_job_id":"bcd49cee-afbb-4708-9c00-9eef50b7ccf3","html_url":"https://github.com/JulianaMancera/LabAssign5_SOLID-Principles","commit_stats":null,"previous_names":["julianamancera/labassign5_solid-principles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulianaMancera%2FLabAssign5_SOLID-Principles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulianaMancera%2FLabAssign5_SOLID-Principles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulianaMancera%2FLabAssign5_SOLID-Principles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JulianaMancera%2FLabAssign5_SOLID-Principles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JulianaMancera","download_url":"https://codeload.github.com/JulianaMancera/LabAssign5_SOLID-Principles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246348981,"owners_count":20763082,"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":["order","software-engineering","solid-principles"],"created_at":"2025-03-30T16:32:03.259Z","updated_at":"2025-03-30T16:35:01.147Z","avatar_url":"https://github.com/JulianaMancera.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LabAssign5_SOLID-Principles\n\n### Improve the following codes to implement SOLID principles in OOP.\n```\npublic interface Order {\n\n  void calculateTotal(double price, int quantity);\n\n  void placeOrder(String customerName, String address);\n\n  void generateInvoice(String fileName);\n\n  void sendEmailNotification(String email);\n}\n\npublic class OrderAction implements Order {\n\n  @Override\n  public void calculateTotal(double price, int quantity) {\n    double total = price * quantity;\n    System.out.println(\"Order total: $\" + total);\n  }\n\n  @Override\n  public void placeOrder(String customerName, String address) {\n    // Simulate placing order in a system\n    System.out.println(\"Order placed for \" + customerName + \" at \" + address);\n  }\n\n  @Override\n  public void generateInvoice(String fileName) {\n    // Simulate generating invoice file\n    System.out.println(\"Invoice generated: \" + fileName);\n  }\n\n  @Override\n  public void sendEmailNotification(String email) {\n    // Simulate sending email notification\n    System.out.println(\"Email notification sent to: \" + email);\n  }\n}\n\npublic class OrderTest {\n\n  public static void main(String[] args) {\n    Order order = new OrderAction();\n    order.calculateTotal(10.0, 2);\n    order.placeOrder(\"John Doe\", \"123 Main St\");\n\n    // These methods might not be needed for all orders\n    order.generateInvoice(\"order_123.pdf\");\n    order.sendEmailNotification(\"johndoe@example.com\");\n  }\n}\n```\n## UML CLASS DIAGRAM\n![Solid Principles](https://github.com/user-attachments/assets/280bd431-d6b1-434d-b8cf-920821d27e03)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulianamancera%2Flabassign5_solid-principles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulianamancera%2Flabassign5_solid-principles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulianamancera%2Flabassign5_solid-principles/lists"}