Tengo una función que devuelve el mismo tipo de objetos (resultados de la consulta) pero sin propiedades o métodos en común. Para tener un tipo común, utilicé una interfaz vacía como tipo de retorno e implementé eso en ambos.¿El código de las interfaces vacías huele?
Eso no suena bien, por supuesto. Solo puedo consolarme aferrándome a la esperanza de que algún día esas clases tengan algo en común y trasladaré esa lógica común a mi interfaz vacía. Sin embargo, no estoy satisfecho y pensando si debería tener dos métodos diferentes y llamar condicionalmente al siguiente. ¿Sería eso un mejor enfoque?
También me dijeron que .NET Framework usa interfaces vacías para etiquetar.
Mi pregunta es: ¿es una interfaz vacía una fuerte señal de un problema de diseño o es ampliamente utilizada?
EDIT: Para los interesados, descubrí más tarde que las uniones discriminadas en los lenguajes funcionales son la solución perfecta para lo que estaba tratando de lograr. C# aún no parece ser amigable con ese concepto.
EDIT: Escribí un longer piece sobre este tema, explicando el problema y la solución en detalle.
Se llaman [interfaces de marcador] (http://en.wikipedia.org/wiki/Marker_interface_pattern) y aparentemente se usan ampliamente. – BoltClock
Lea esto http://msdn.microsoft.com/en-us/library/ms182128%28v=vs.80%29.aspx (mi opinión debe ser métodos diferentes) – V4Vendetta
Algo en líneas similares http: // stackoverflow. com/questions/835140/using-marker-classes-to-control-logic-flow – V4Vendetta