Creé un método de validación privado para una cierta validación que ocurre varias veces en mi clase (no puedo almacenar los datos validados por varias razones). Ahora, ReSharper sugiere que la función podría hacerse estática. Soy un poco reacio a hacerlo debido a problemas conocidos con los métodos estáticos. Sería un método estático privado . Mi pregunta es, ¿pueden los métodos estáticos privados causar problemas similares de acoplamiento y prueba como los métodos estáticos públicos? ¿Es una mala práctica? Supongo que no, pero no estoy seguro si hay una trampa aquí.
c#
static-methods
Tamás Szelei
fuente
fuente
Respuestas:
Yo pensaría: "¿Necesito probar esto?"
Si su método es privado de todos modos, lo que significa que no desea probar la lógica de la unidad en el método en sí mismo, entonces, en lo que respecta a la capacidad de prueba y la capacidad de mantenimiento, su clase es una caja negra de cualquier manera, el funcionamiento interno de su clase es su negocio. Y está solo. La refactorización tampoco se verá afectada, lo que también es algo a considerar.
Entonces, en mi opinión: No, hacer un método "privado" "privado estático" no tendrá ramificaciones a largo plazo.
fuente
Los métodos estáticos privados son lo más fácil posible, desde mi punto de vista.
DataIn -> Método -> DataOut
No hay dependencias en objetos externos, no hay efectos secundarios. ¿Por qué los consideras malos?
fuente
Las clases de prueba que usan métodos estáticos públicos pueden ser difíciles, ya que no es (particularmente) fácil tropezar / falsificar / burlarse de los métodos estáticos. Los métodos de instancia, por otro lado, se pueden burlar fácilmente, especialmente si son virtuales o satisfacen una interfaz.
Sin embargo, no veo ninguna razón para no usar métodos estáticos privados. De hecho, hay un ligero beneficio de rendimiento, ya que no necesita una instancia de la clase para ocupar memoria.
Por otro lado, cualquier cosa estática es un poco un olor a código. ¿Es esto realmente una "clase auxiliar"? ¿Podría ser que el método podría residir más útilmente en una de las clases pasadas como parámetro? La respuesta a esas preguntas es a menudo "está bien como estática", pero vale la pena recordarla.
fuente
static
palabra clave parece infundado.