La solución propuesta consiste en incorporar la abstracción PassengerCounter, encargada de definir el comportamiento necesario para el conteo de pasajeros según diferentes criterios.
Posteriormente, se implementa la clase SeniorCitizenCounter, responsable de realizar el conteo de ciudadanos mayores. De esta manera, la clase StatisticsManagement deja de depender de una implementación específica y pasa a trabajar mediante la abstracción PassengerCounter.
Como se observa en el diagrama UML de la solución, la funcionalidad de conteo queda desacoplada de la generación de estadísticas, permitiendo extender el sistema mediante nuevas implementaciones sin modificar el código existente.
Beneficios de la Propuesta
Extensibilidad: Es posible incorporar nuevas estrategias de conteo, como StudentCounter, VipPassengerCounter o cualquier otra categoría, sin modificar las clases existentes.
Menor Acoplamiento: La clase StatisticsManagement trabaja con una abstracción en lugar de depender de implementaciones concretas.
Mayor Mantenibilidad: Las nuevas funcionalidades pueden añadirse mediante nuevas clases sin afectar el comportamiento actual del sistema.
Cumplimiento del Principio OCP: El sistema queda abierto para extensión y cerrado para modificación, permitiendo incorporar nuevos comportamientos sin alterar el código ya desarrollado.
Escalabilidad: La solución facilita el crecimiento futuro del sistema y reduce el impacto de cambios relacionados con nuevas categorías de pasajeros.

La solución propuesta consiste en incorporar la abstracción PassengerCounter, encargada de definir el comportamiento necesario para el conteo de pasajeros según diferentes criterios.
Posteriormente, se implementa la clase SeniorCitizenCounter, responsable de realizar el conteo de ciudadanos mayores. De esta manera, la clase StatisticsManagement deja de depender de una implementación específica y pasa a trabajar mediante la abstracción PassengerCounter.
Como se observa en el diagrama UML de la solución, la funcionalidad de conteo queda desacoplada de la generación de estadísticas, permitiendo extender el sistema mediante nuevas implementaciones sin modificar el código existente.
Beneficios de la Propuesta
Extensibilidad: Es posible incorporar nuevas estrategias de conteo, como StudentCounter, VipPassengerCounter o cualquier otra categoría, sin modificar las clases existentes.
Menor Acoplamiento: La clase StatisticsManagement trabaja con una abstracción en lugar de depender de implementaciones concretas.
Mayor Mantenibilidad: Las nuevas funcionalidades pueden añadirse mediante nuevas clases sin afectar el comportamiento actual del sistema.
Cumplimiento del Principio OCP: El sistema queda abierto para extensión y cerrado para modificación, permitiendo incorporar nuevos comportamientos sin alterar el código ya desarrollado.
Escalabilidad: La solución facilita el crecimiento futuro del sistema y reduce el impacto de cambios relacionados con nuevas categorías de pasajeros.