Skip to content

Interface Segregation Principle (ISP) #6

Description

@JorgeAlvarez05

La solución propuesta consiste en dividir la interfaz BusManagementInterface en varias interfaces especializadas, agrupando únicamente operaciones relacionadas con una responsabilidad específica.

Como resultado, se crean las interfaces TicketManagementInterface, PassengerManagementInterface y StatisticsManagementInterface. Cada una de ellas contiene únicamente los métodos necesarios para su área funcional. Posteriormente, la clase BusTicketManagement implementa las interfaces requeridas, evitando la dependencia de métodos ajenos a su responsabilidad principal.

Como se observa en el diagrama UML de la solución, las responsabilidades quedan distribuidas en contratos más pequeños y especializados, reduciendo las dependencias innecesarias y mejorando la organización general del sistema.

Beneficios de la Propuesta

Interfaces Más Especializadas: Cada interfaz contiene únicamente operaciones relacionadas con una responsabilidad específica.

Menor Acoplamiento: Los componentes del sistema dependen únicamente de los métodos que realmente necesitan utilizar.

Mayor Modularidad: La división de responsabilidades facilita la comprensión y evolución del sistema.

Mayor Flexibilidad: Nuevas funcionalidades pueden incorporarse mediante nuevas interfaces sin afectar los contratos existentes.

Cumplimiento del Principio ISP: Ninguna clase se ve obligada a depender o implementar métodos que no utiliza, respetando correctamente el principio Interface Segregation Principle (ISP).

Image

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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