Preguntas etiquetadas con interfaces

30
Comprender la "programación a una interfaz"

Me he encontrado con el término "programar para una interfaz en lugar de una implementación", y creo que entiendo lo que significa. Pero quiero asegurarme de entender sus beneficios y sus posibles implementaciones. "Programación en una interfaz" significa que, cuando sea posible, uno debe...

29
Nombre de la interfaz: prefijo 'Can-' vs sufijo '-Able'

Es común usar '-able' como sufijo para interfaces, por ejemplo Serializable Imprimible Enumerable Bebible Tirable Giratorio Estaba pensando que 'Can-' podría ser mejor porque puede ser más descriptivo. Sí, es más prolijo y agrega ruido al nombre de la interfaz. En particular, se pueden usar...

22
¿Cómo evoluciona y versiona una interfaz?

Digamos que tienes una interfaz IFoo: public interface IFoo { void Bar(string s); int Quux(object o); } En la versión 2 de su API, debe agregar un método Glarg a esta interfaz. ¿Cómo lo hace sin romper sus usuarios API existentes y mantener la compatibilidad con versiones anteriores? Esto está...

20
¿Quién extiende las interfaces? ¿Y por qué?

AFAIK, mi clase extends, clases e implementsinterfaces para padres . Pero me encuentro con una situación en la que no puedo usar implements SomeInterface. Es la declaración de un tipo genérico. Por ejemplo: public interface CallsForGrow {...} public class GrowingArrayList <T implements...

20
Genéricos vs interfaz común?

No recuerdo cuándo escribí la clase genérica la última vez. Cada vez que creo que lo necesito después de pensarlo, llego a una conclusión que no. La segunda respuesta a esta pregunta me hizo pedir una aclaración (ya que aún no puedo comentar, hice una nueva pregunta). Así que tomemos el código...

16
Uso de la palabra clave "Uso" en la interfaz C #

Cuando estoy usando C # para escribir algún código y defino una interfaz usando Visual Studio 2010, siempre incluye una serie de declaraciones "en uso" (como se muestra en el ejemplo) using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace...