Ho alcuni metodi che sono senza stato:
loginWithEmail: password: completion:
signUpWithEmail: password: completion:
resetPasswordForUsername: completion:
Attualmente quello che faccio è creare una classe che contenga questi metodi stateless:
@interface KGAccountService : NSObject
+ (void)//method1
+ (void)//method2
+ (void)//method3
@end
Quindi chiamerei i metodi da qualche posto come un controller di visualizzazione che un utente sta usando per accedere.
[KGAccountService loginWithEmail:@"email" password:@"password" completion:{
// user logged in or error
}];
Un mio collaboratore è piuttosto irremovibile sul fatto che, anche se la classe contiene solo metodi di classe e non ha bisogno di alcun tipo di stato, dovrebbe essere implementata usando il modello singleton ed essere chiamata attraverso questo:
@interface KGAccountService : NSObject
+ (instanceType)sharedInstance;
- (void)//method1
- (void)//method2
- (void)//method3
@end
Quindi:
[[KGAccountService sharedInstance] loginWithEmail:@"email" password:@"password" completion:{
// user logged in or error
}];
Non vedo il punto nell'attuazione del modello singleton quando non è necessario e il mio collega non è stato in grado di ottenere il suo punto di vista fino a me. C'è uno schema di progettazione che mi manca e il mio modo di creare una classe per ospitare i metodi di classe stateless è corretto?