Envié una solicitud que escribí a otros arquitectos para revisar el código. Uno de ellos me contestó casi de inmediato y me dijo: "No use" estático ". No puede escribir pruebas automáticas con clases y métodos estáticos." Estático "debe evitarse".
Lo verifiqué y 1/4 de mis clases están marcadas como "estáticas". Uso la estática cuando no voy a crear una instancia de una clase porque la clase es una única clase global utilizada en todo el código.
Continuó mencionando algo que involucra burlas, técnicas IOC / DI que no pueden usarse con código estático. Él dice que es desafortunado cuando las bibliotecas de terceros son estáticas debido a su inestabilidad.
¿Es este otro arquitecto correcto?
actualización: aquí hay un ejemplo:
APIManager: esta clase mantiene los diccionarios de API de terceros a los que llamo junto con el próximo tiempo permitido. Hace cumplir los límites de uso de API que muchos terceros tienen en sus términos de servicio. Lo uso donde sea que esté llamando a un servicio de terceros llamando a Thread.Sleep (APIManager.GetWait ("ProviderXYZ")); antes de hacer la llamada Todo aquí es seguro para subprocesos y funciona muy bien con TPL en C #.