In termini di buone pratiche di codifica Objective-C, se creo una funzione senza stato, è meglio scrivere come metodo statico di una classe o come Funzione C?Metodi statici stateless contro funzioni C in Objective-C
Ad esempio, ho uno speciale metodo di recupero del percorso file che controlla la directory Caches prima di passare al NSBundle principale. Attualmente lo ho come metodo statico in una classe Utils altrimenti vuota. Questa dovrebbe essere una funzione C?
Il motivo per cui ho scelto di utilizzare un metodo statico (per ora) è che a) è coerente con la sintassi Objective-C e b) la classe aiuta a classificare il metodo. Tuttavia, mi sento come se stessi ingannando un po ', dal momento che potrei facilmente riempire la mia classe Util con questi metodi statici stateless e finire con una brutta "classe shell", il cui unico scopo sarebbe quello di tenerli.
Quale convenzione utilizzate? Uno è "migliore" rispetto all'altro, secondo una metrica oggettiva? Grazie!
Sì, provo a farlo il più spesso possibile. In questo caso, non si può pensare a uno solo: cerca il pacchetto solo se non trova il file in Caches e non è un metodo di istanza come il tipico pathForResource :, quindi (secondo me) non è un misura ideale – Archagon
Quindi rendilo un metodo di classe. Il mio punto è, non è l'incapacità di pensare ad una classe esistente appropriata solo un fallimento dell'immaginazione? Potrebbe essere NSBundle, potrebbe essere NSFileManager, potrebbe essere NSString (perché si occupa di nomi di percorso), potrebbe essere qualsiasi classe che tu abbia intuitivamente sentito essere nel giusto ambito. – matt
+1 Per la categoria. Personalmente penso che lo scopo di una lezione sia quello di essere istanziati. Non usare una classe come spazio dei nomi. Quindi, se hai solo metodi statici, dovresti considerare un altro approccio. – Macmade