Mantenimento del metodo Firme tra le lingue?

3

Sto finendo una porta che ho fatto di una porzione di una libreria Java. La biblioteca calcola l'alba e il tramonto per una data latitudine e longitudine. Anche la libreria Java originale calcolava varie volte in base all'alba e al tramonto, che ho intenzione di ottenere in seguito.

Detto questo, sto lavorando con Objective-C e il framework Cocoa Touch. I metodi originali, essendo Java, iniziarono tutti con get e presero i loro argomenti tra parentesi. Tuttavia, Objective-C ha una diversa struttura del metodo, quindi i metodi finiscono per sembrare diversi. Ad esempio,

public double getUTCSunset(AstronomicalCalendar astronomicalCalendar, double zenith, boolean adjustForElevation)

diventa questo:

- (double) getUTCSunsetForDate:(NSDate*)date andZenith:(double)zenith adjustForElevation:(BOOL)adjustForElevation .

Il problema qui è duplice. Prima di tutto, secondo la Documentazione di Apple sulla convenzione di codifica, i nomi dei metodi (e "getter"), non dovrebbero includere get in essi. Tuttavia, sorge un secondo problema se si rilascia il get . Finiamo con una firma del metodo che inizia con una lettera maiuscola, che non dovrebbe neanche accadere.

Come riscriverebbe questo metodo, mantenendo le firme dei metodi abbastanza simili da essere riconoscibili l'un l'altro?

    
posta Moshe 22.04.2011 - 05:53
fonte

2 risposte

4

- (double) UTCSunsetForDate:(NSDate*)date andZenith:(double)zenith adjustForElevation:(BOOL)adjustForElevation

Penso che tu possa iniziare con una maiuscola se è un acronimo. Esamina NSURLRequest class dove alcuni metodi inizia con URL o HTTP .

In realtà, ecco una citazione da Linee guida per la codifica della mela

Start the name with a lowercase letter and capitalize the first letter of
embedded words. Don’t use prefixes. See “Typographic Conventions.” There are two specific exceptions to these guidelines. You may begin a method name with a well-known acronym in uppercase (such as TIFF or PDF)), and you may use prefixes to group and identify private methods (see “Private Methods”).

    
risposta data 22.04.2011 - 09:03
fonte
0

Al giorno d'oggi non ho davvero scritto molti Objective C, ma mi aspetto una firma del metodo come questa:

- (double) utcSunsetForDate:(NSDate*)date andZenith:(double)zenith adjustingForElevation:(BOOL)adjustForElevation

'utc' non ha un bell'aspetto, ma è decisamente migliore di 'uTC', 'getUTC' o anche 'universalCoordinatedTime', che è semplicemente troppo prolisso.

Inoltre, il valore del reso dovrebbe essere un doppio, piuttosto che un UTCTime o qualcosa di simile?

    
risposta data 22.04.2011 - 06:25
fonte

Leggi altre domande sui tag