2010-09-14 6 views
5

Estaba viendo la definición de Spring's PlatformTransactionManager que contiene referencias a TransactionStatus y TransactionDefinition, otras dos interfaces.¿Es aceptable que una definición de interfaz contenga referencias a otras interfaces?

¿Es esto aceptable en general, una definición de interfaz que contiene referencias a otras interfaces? ¿Cuándo es útil?

+0

Gracias a todos por la aclaración, supongo que intentaré seguir este estilo a partir de ahora. Hasta ahora, los métodos de mi interfaz tienden a usar solo tipos básicos, lo cambiaré. –

Respuesta

8

Sí, es aceptable. ¿Por qué no sería?

Es incluso mejor tener referencias a Interfaces en lugar de clases concretas para lo que vale la pena.

+3

Exactamente. En mi humilde opinión, una API bien diseñada puede/debería exponer interfaces, enumeraciones y anotaciones, pero apenas algunas clases concretas. –

4

Es absolutamente aceptable. A veces los tipos necesitan referirse a otros tipos, y si esos tipos a su vez representan servicios potencialmente complejos, es útil poder abstraer un tipo general, a menudo en la forma de una interfaz.

0

Su posible ... Eso es uno de los aspectos clave en la implementación de múltiples inheritence

+0

¿Cómo se relaciona eso con la pregunta de alguna manera? – whiskeysierra

+0

@Willi - No estoy seguro de lo que no está claro. Hay dos cosas que se preguntan en cuestión. 1) si las referencias de otras interfaces son posibles y 2) cuándo es útil. Parece que he respondido a los dos. ¿Cuál es la confusión si puede explicar que puedo corregir mi respuesta? –

+0

La pregunta no es acerca de qué es * posible * en lugar de * aceptable * y * útil *. Y hacer referencia a otros tipos (o interfaces en este caso) no tiene nada que ver con la herencia. – whiskeysierra

0

Sí. Es posible. No puedo pensar en ningún escenario donde pueda crear algún problema.

Cuestiones relacionadas