Parece que no puedo encontrar una respuesta al respecto y solo quiero asegurarme de que sea un estándar de codificación correcto. Tengo la interfaz A que utilizan muchas clases diferentes y no quiero que la interfaz A cambie. Me encontré con un nuevo requisito que requerirá una enumeración necesaria para muchas de las clases que implementan la interfaz A, pero no todas las clases necesitan esta enumeración. No quiero que las clases que no requieren esta nueva enumeración implementen esta nueva funcionalidad. Así que creé la Interfaz B que contiene la nueva enumeración que necesitaba agregar. Luego hice Interface B Heredar interfaz A y esta es mi preocupación, ¿está bien que una interfaz pueda heredar otra interfaz? Para continuar con mis cambios, cambié las clases que necesitaban la nueva enumeración para Implementar la Interfaz B en lugar de la Interfaz A, ya que la Heredaba la Interfaz B. Pensé en Implementar ambas Interfaces en mis clases que las necesitaban, pero estoy usando Interfaz a lo largo del código y me gustaría usar solo una interfaz para mirar las clases y no dos.En caso de que una interfaz herede otra interfaz
Espero que esto haya sido lo suficientemente claro (probablemente por mucho tiempo) pero si alguien me puede dar algún consejo sobre esto o lo estoy haciendo bien o lo estoy haciendo mal, por favor avíseme.
Gracias!
Originalmente sugerí que se aplicara el principio de sustitución de Liskov. En retrospectiva, eso no es realmente relevante. La mayoría de los requisitos del LSP (mantenimiento de invariantes, restricciones en condiciones previas y posteriores) solo son aplicables a implementaciones concretas, no a interfaces. Una vez dicho esto, el principio general de sustituibilidad debería seguir guiando las decisiones de herencia de interfaz. –
Principio de sustitución Liskov: es importante asegurarse de que la interfaz B pueda reemplazar por completo la interfaz A. De lo contrario, terminará con la funcionalidad que debe implementar y que no desea. Esto conduce a un código adicional que no desea, lo que hace que el software sea menos estable. –