Title: Implementing Decorator Design Pattern · Issue #3 · flyworker/java-workshop · GitHub
Open Graph Title: Implementing Decorator Design Pattern · Issue #3 · flyworker/java-workshop
X Title: Implementing Decorator Design Pattern · Issue #3 · flyworker/java-workshop
Description: Objetivo: Permitir agregar dinámicamente responsabilidades adicionales a un objeto, proporcionando una alternativa flexible para extender la funcionalidad. Motivación en el Proyecto: En el proyecto, se manejan objetos como vehículos que ...
Open Graph Description: Objetivo: Permitir agregar dinámicamente responsabilidades adicionales a un objeto, proporcionando una alternativa flexible para extender la funcionalidad. Motivación en el Proyecto: En el proyecto...
X Description: Objetivo: Permitir agregar dinámicamente responsabilidades adicionales a un objeto, proporcionando una alternativa flexible para extender la funcionalidad. Motivación en el Proyecto: En el proyecto...
Opengraph URL: https://github.com/flyworker/java-workshop/issues/3
X: @github
Domain: patch-diff.githubusercontent.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Implementing Decorator Design Pattern","articleBody":"## Objetivo: \r\n\r\nPermitir agregar dinámicamente responsabilidades adicionales a un objeto, proporcionando una alternativa flexible para extender la funcionalidad. \r\n\r\n \r\n\r\n## Motivación en el Proyecto: \r\n\r\nEn el proyecto, se manejan objetos como vehículos que tienen comportamientos específicos y a menudo se necesita añadir nuevas funcionalidades a estos objetos sin modificar su estructura original. Se añaden nuevas características fácilmente. \r\n\r\n Vehicle (Interface): Define los métodos para los vehículos. \r\n\r\n Métodos: moveForward(), moveBackward(), turnLeft(), turnRight(), startEngine(String key), stopEngine() \r\n\r\n ConcreteComponent (Sedan, Truck): Implementaciones concretas de la interfaz Vehicle. \r\n\r\n Métodos: Implementan todos los métodos de Vehicle y utilizan VehicleHelper para ciertas operaciones. \r\n\r\n BaseDecorator: Clase abstracta que implementa la interfaz Vehicle y delega las llamadas a un objeto Vehicle envuelto (wrappee). \r\n\r\n Campos: wrappee: Vehicle \r\n\r\n Métodos: BaseDecorator(v: Vehicle), startEngine(String key), stopEngine(), moveForward(), moveBackward(), turnLeft(), turnRight() \r\n\r\n ConcreteDecorator (ExtraFeatureDecorator): Implementación concreta del decorador que añade funcionalidades adicionales. \r\n\r\n Métodos: addExtraFeature(), startEngine(String key), stopEngine(), moveForward(), moveBackward(), turnLeft(), turnRight() \r\n\r\n## Ventajas \r\n\r\nPermite agregar nuevas funcionalidades a los objetos existentes sin modificar su código. \r\n\r\n- Las clases decoradoras pueden reutilizarse para agregar diferentes combinaciones de funcionalidades. \r\n- Se pueden combinar múltiples decoradores para añadir varias características de manera dinámica y flexible. \r\n\r\n## SOLUCION UML \r\n\r\n","author":{"url":"https://github.com/Levin514","@type":"Person","name":"Levin514"},"datePublished":"2024-07-30T01:58:23.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/3/java-workshop/issues/3"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:c91bcba9-93a9-7201-99ab-50afe5517f39 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | ABA4:C6633:787A54:9ACD7C:69921E39 |
| html-safe-nonce | 1a5ae090a564bcd7d8c458d3d86a0f83c53563dccac5d791365ab510a47123b6 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQkE0OkM2NjMzOjc4N0E1NDo5QUNEN0M6Njk5MjFFMzkiLCJ2aXNpdG9yX2lkIjoiNTIwNzM3Mjg3NTc3NDk1OTE2MSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 9385e86bcb038e80901f4c80403591996f17ba37df1677971f84569e5e078411 |
| hovercard-subject-tag | issue:2436716862 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/flyworker/java-workshop/3/issue_layout |
| twitter:image | https://opengraph.githubassets.com/02bf37626b4321eaf532f8cd67fb1eca546c60529271b7379d17363fe6395dff/flyworker/java-workshop/issues/3 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/02bf37626b4321eaf532f8cd67fb1eca546c60529271b7379d17363fe6395dff/flyworker/java-workshop/issues/3 |
| og:image:alt | Objetivo: Permitir agregar dinámicamente responsabilidades adicionales a un objeto, proporcionando una alternativa flexible para extender la funcionalidad. Motivación en el Proyecto: En el proyecto... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | Levin514 |
| hostname | github.com |
| expected-hostname | github.com |
| None | 42c603b9d642c4a9065a51770f75e5e27132fef0e858607f5c9cb7e422831a7b |
| turbo-cache-control | no-preview |
| go-import | github.com/flyworker/java-workshop git https://github.com/flyworker/java-workshop.git |
| octolytics-dimension-user_id | 8363795 |
| octolytics-dimension-user_login | flyworker |
| octolytics-dimension-repository_id | 100090200 |
| octolytics-dimension-repository_nwo | flyworker/java-workshop |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 100090200 |
| octolytics-dimension-repository_network_root_nwo | flyworker/java-workshop |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 848bc6032dcc93a9a7301dcc3f379a72ba13b96e |
| ui-target | canary-1 |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width