En términos de buenas prácticas de codificación de Objective-C, si creo una función que no tiene estado, ¿es mejor escribirla como un método estático de alguna clase o como un Función C?Métodos estáticos sin estado vs. funciones C en Objective-C
Por ejemplo, tengo un método de recuperación de ruta de archivo especial que comprueba el directorio de Caches antes de proceder al NSBundle principal. Actualmente lo tengo como un método estático en una clase de Utils vacía. ¿Debería ser esto una función C?
La razón por la que he elegido usar un método estático (por ahora) es que a) es consistente con la sintaxis de Objective-C, yb) la clase ayuda a categorizar el método. Sin embargo, siento que estoy haciendo trampa un poco, ya que podría llenar fácilmente mi clase Util con estos métodos estáticos sin estado y terminar con una fea "clase shell", cuyo único propósito sería retenerlos.
¿Qué convención usas? ¿Es uno "mejor" que el otro, por alguna medida objetiva? ¡Gracias!
Sí, trato de hacer eso tan a menudo como sea posible. Sin embargo, no pude pensar en uno en este caso: solo busca en el paquete si no encuentra el archivo en Caches, y no es un método de instancia como el pathForResource típico, por lo que (en mi opinión) no es un ajuste ideal. – Archagon
Así que conviértalo en un método de clase. Mi punto es, ¿no es la incapacidad de pensar en una clase existente apropiada solo un fracaso de la imaginación? Podría ser NSBundle, podría ser NSFileManager, podría ser NSString (porque trata con nombres de rutas), podría ser de cualquier clase _you intuitivamente se siente en el estadio correcto. – matt
+1 Para la categoría. Personalmente creo que el propósito de una clase es ser instanciado. No use una clase como espacio de nombres. Entonces, si solo tienes métodos estáticos, debes considerar otro enfoque. – Macmade