El ejemplo anterior mostró el uso de métodos estándar, pero no en un escenario práctico.
La interfaz de la serie se utilizó ampliamente y muchos programas dependían de ella.
Se descubrió que varias implementaciones de Series agregaron un método que devuelve una matriz con los siguientes n elementos de la serie.
Se decidió mejorar la interfaz de Series con el método getNextArray(int n), donde n especifica el número de elementos a recuperar.
Antes de los métodos estándar, agregar este método rompería el código existente que no lo definía.
Con los métodos estándar, el nuevo método se puede agregar a la interfaz de la Serie sin causar problemas en los códigos existentes.
En algunos casos, los métodos estándar agregados a una interfaz informan un error si se usan, cuando no es posible proporcionar una implementación que funcione en todas las situaciones.
Estos métodos predeterminados definen código opcional.
En ciertos casos, se puede definir un método predeterminado para que funcione en cualquier situación.
El método getNextArray() es un ejemplo, ya que se puede implementar usando el método getNext() ya requerido por la interfaz de la Serie.
Es posible implementar la nueva versión de Series con el método estándar getNextArray().
El método estándar getNextArray() se implementa utilizando el método getNext(), ya presente en la especificación de la serie original.
Cualquier clase que implemente Series puede usar getNextArray() sin tener que anular el método.
El código existente no se invalidará agregando getNextArray().
Las clases pueden proporcionar su propia implementación de getNextArray() si es necesario.
Ventajas del método estándar:
Permite que las interfaces evolucionen sin invalidar el código existente.
Proporciona funcionalidad opcional sin requerir la implementación de un marcador de posición.
En el caso de getNextArray(), si una implementación de Series no necesita el método, no necesita proporcionar una implementación de marcador de posición, lo que da como resultado un código más limpio.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3