En primer lugar, entiendo las razones por las que una interfaz o clase abstracta (en la terminología .NET/C#) no puede tener métodos abstractos estáticos. Mi pregunta está más centrada en la mejor solución de diseño.Métodos estáticos en una interfaz/Resumen Clase
Lo que quiero es un conjunto de clases "auxiliares" que tengan sus propios métodos estáticos, de modo que si obtengo los objetos A, B y C de un proveedor externo, puedo tener clases auxiliares con métodos como
AHelper.RetrieveByID(string id); AHelper.RetrieveByName(string name); AHelper.DumpToDatabase();
desde mis clases AHelper, BHelper y CHelper serán todos tienen básicamente los mismos métodos, parece que tiene sentido para mover estos métodos a una interfaz que estas clases se derivan de. Sin embargo, querer que estos métodos sean estáticos me impide tener una interfaz genérica o una clase abstracta de la que puedan derivarse todos ellos.
que siempre podría hacer que estos métodos no estáticos y luego instanciar los objetos primero como
AHelper a = new AHelper(); a.DumpToDatabase();
Sin embargo, este código no parece tan intuitivo para mí. ¿Cuáles son tus sugerencias? ¿Debo abandonar el uso de una interfaz o clase de resumen por completo (la situación en la que me encuentro ahora) o puede ser refactorizada para lograr el diseño que estoy buscando?
EN MIEMBRO: Primera opción sería mejor ser genérico, por lo que se puede utilizar inferencia tipo que es aún mejor. –