Skip to content

Implementación del Patrón Decorator #7

@juzjuz10

Description

@juzjuz10

Objetivo

Extender dinámicamente las funcionalidades de un objeto Vehicle sin modificar su estructura original, usando el patrón Decorator.

Motivación

En el proyecto, los vehículos (Vehicle) tienen comportamientos básicos. Se requiere agregar características adicionales (como sensores o modos de conducción) sin modificar el código existente. El patrón Decorator permite añadir estas funcionalidades de forma flexible y reutilizable.

Componentes

Vehicle (Interfaz):
Define los métodos básicos: moveForward(), moveBackward(), turnLeft(), turnRight(), startEngine(), stopEngine().

ConcreteComponent (Sedan, Truck):
Implementan la interfaz Vehicle con comportamientos estándar.

BaseDecorator (Abstract Class):
Envuelve un objeto Vehicle y delega las llamadas a este.

ConcreteDecorator (ExtraFeatureDecorator):
Añade nuevas funcionalidades sobrescribiendo métodos como startEngine() y moveForward().

Ventajas

  • Extensión sin Modificar: Se añaden nuevas características sin cambiar el código original.
  • Flexibilidad: Permite combinar múltiples decoradores para añadir funcionalidades.
  • Reutilización: Los decoradores funcionan con cualquier objeto Vehicle.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions