In Objective-C, qual è la convenzione di denominazione attorno ai protocolli e alle loro classi di implementazione?

2

Esiste una convenzione di denominazione per i protocolli e le loro implementazioni concrete in Objective-C? In particolare per quanto riguarda un protocollo che viene utilizzato come una dichiarazione di classe 'servizio' o 'manager' astratto.

Ad esempio, in Java potresti avere un'interfaccia SomeService per descrivere alcuni servizi dati e chiamare la sua classe di implementazione SomeServiceImpl (o ISomeService e la sua classe di implementazione SomeService ).

Se ho un protocollo @protocol SomeService <NSObject> , c'è una convenzione di denominazione per la classe che implementa detto protocollo?
per esempio. @interface SomeServiceImpl : NSObject <SomeService>

    
posta Mitch Ware 09.08.2016 - 22:06
fonte

1 risposta

1

Linee guida di codifica per il cacao e La guida allo stile Objective-C è un'ottima risorsa per rispondere a qualsiasi domanda sulla convenzione di denominazione. La mia risposta è il più possibile basata su questo.

Metodo iniziale

Il metodo init sembra buono.

- (id) initWithName:(NSString *) name;

Metodo di classe

Il metodo di classe sembra buono.

+ (NSString *) aliasForName:(NSString *) name

I metodi di classe possono anche essere usati per istanziare un'istanza di un oggetto. In questo caso, le API di Apple hanno generalmente il metodo start con il nome della classe come il pulsanteWithType di UIButton: metodo che ha la firma:

+ (id)buttonWithType:(UIButtonType)buttonType

Metodi di istanza

È possibile trovare una buona risorsa per le convenzioni di codifica dei metodi in Regole generali.

Il seguente metodo dovrebbe eliminare and s:

- (void) methodWithApple:(NSString *) apple andOrange:(NSString *) orange andMango:(NSString *) mango  // BAD

Non utilizzare "e" per collegare parole chiave che sono attributi del ricevitore.

- (int)runModalForDirectory:(NSString *)path file:(NSString *) name types:(NSArray *)fileTypes; //RIGHT 

- (int)runModalForDirectory:(NSString *)path andFile:(NSString *)name andTypes:(NSArray *)fileTypes; //WRONG

La firma dovrebbe essere più simile alla seguente:

    - (void) methodWithApple:(NSString*)apple orange:(NSString*)orange
    mango:(NSString*)mango  // GOOD
    
risposta data 05.10.2017 - 11:38
fonte

Leggi altre domande sui tag