Comment créer et gérer une classe utilitaire ?
Kubernan
Membre
Bonjour,
J'ai créer une classe que l'on pourrait qualifier d'utilitaire étant donné qu'elle contient plusieurs méthodes que j'appelle un peu partout dans mon code pour calculer des dates.
J'ai par exemple une méthode qui me calcule la dernière date d'un mois donné par l'intermédiaire d'une autre date :
+ (NSDate)lastDateOfMonthFromDate:(NSDate *date);
Cette classe nommée DateComputations n'a pas d'initialiseur (pas d'appel à init). J'appelle cette méthode très régulièrement par ce moyen :
NSDate *lastDate = [DateComputations lastDateOfMonthFromDate:...];
Je me demande si c'est tout bonnement une bonne façon de faire, en terme de design et éventuellement de performance.
Des avis ?
Merci d'avance.
J'ai créer une classe que l'on pourrait qualifier d'utilitaire étant donné qu'elle contient plusieurs méthodes que j'appelle un peu partout dans mon code pour calculer des dates.
J'ai par exemple une méthode qui me calcule la dernière date d'un mois donné par l'intermédiaire d'une autre date :
+ (NSDate)lastDateOfMonthFromDate:(NSDate *date);
Cette classe nommée DateComputations n'a pas d'initialiseur (pas d'appel à init). J'appelle cette méthode très régulièrement par ce moyen :
NSDate *lastDate = [DateComputations lastDateOfMonthFromDate:...];
Je me demande si c'est tout bonnement une bonne façon de faire, en terme de design et éventuellement de performance.
Des avis ?
Merci d'avance.
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
La doc Apple sur les Catégories
Merci pour ta réponse. J'avais effectivement pensé aux catégories. Mais j'ai écarté (peut-être un peu vite) cette solution étant donné que le calcul de date est plus lié à NSCalendar mais aussi à NSDateComponents... Peut-être dois-je voir ça avec NSCalendar. Non ?
La gestion des dates en Cocoa est certes puissante, mais tu dois facilement passer par 3 à 5 classes différentes chaque fois que tu veux faire un truc pas forcément compliqué.
Donc rajouter des méthodes via des catégories c'est le top, et c'est fait pour ça.