Este es un ejemplo clásico de cómo las personas deciden violar el Principio de Subtitulación de Liskov. Lo desaconsejo encarecidamente, pero recomendaría posiblemente una solución diferente:
- Quizás la clase que está escribiendo no proporciona la funcionalidad que prescribe la interfaz si no tiene uso de todos los miembros de la interfaz.
- Alternativamente, esa interfaz puede estar haciendo varias cosas y podría estar separada según el Principio de segregación de interfaz.
Si el primero es el caso para usted, simplemente no implemente la interfaz en esa clase. Piense en ello como un enchufe eléctrico donde el orificio de conexión a tierra es innecesario, por lo que en realidad no se conecta a tierra. ¡No conectas nada con tierra y no es gran cosa! Pero tan pronto como use algo que necesite un terreno, podría encontrarse con un fracaso espectacular. Es mejor no perforar un agujero falso en el suelo. Entonces, si su clase no hace realmente lo que pretende la interfaz, no implemente la interfaz.
Aquí hay algunos bits rápidos de wikipedia:
El Principio de sustitución de Liskov puede formularse simplemente como "No fortalezca las precondiciones y no debilite las postcondiciones".
Más formalmente, el principio de sustitución de Liskov (LSP) es una definición particular de una relación de subtipo, llamada subtipo de comportamiento (fuerte), que fue inicialmente presentada por Barbara Liskov en un discurso de apertura de la conferencia de 1987 titulado Abstracción y jerarquía de datos. Es una relación semántica más que simplemente sintáctica porque tiene la intención de garantizar la interoperabilidad semántica de los tipos en una jerarquía , [...]
Para la interoperabilidad semántica y la sustituibilidad entre diferentes implementaciones de los mismos contratos, necesita que todos se comprometan con los mismos comportamientos.
El principio de segregación de interfaz habla de la idea de que las interfaces deben separarse en conjuntos cohesivos, de modo que no requiera una interfaz que haga muchas cosas diferentes cuando solo desea una instalación. Piense nuevamente en la interfaz de una toma de corriente, también podría tener un termostato, pero dificultaría la instalación de una toma de corriente y podría hacer que sea más difícil de usar para fines que no sean de calefacción. Al igual que una toma de corriente con un termostato, las interfaces grandes son difíciles de implementar y difíciles de usar.
El principio de segregación de interfaz (ISP) establece que ningún cliente debería verse obligado a depender de métodos que no utiliza. [1] El ISP divide las interfaces que son muy grandes en pequeñas y más específicas para que los clientes solo tengan que conocer los métodos que les interesan.