Parametri del metodo Ordine [chiuso]

0

Recentemente ho modificato un metodo per aggiungere un parametro aggiuntivo, e non ho potuto fare a meno di chiedermi se ci fossero "best practice" o "regole generalmente accettate" nel decidere quali parametri di ordine di un metodo dovrebbero essere inseriti? Ovviamente, potresti metterlo nell'ordine che preferisci ... Mi chiedo più se ci sono delle linee guida ufficiali (o non ufficiali) per questo. La mia lingua particolare è Java, ma penso che questo potrebbe applicarsi a qualsiasi lingua con argomenti.

Elenco dei parametri di esempio:

public String generateMessage(Object o, String prefix, String suffix)
    //generates a message such as: "prefix : objectName : suffix"

Sto aggiungendo un valore booleano, che è se il prefisso debba essere mostrato.

public String generateMessage(Object o, String prefix, boolean isPrefixVisible, String suffix)
    
posta DoubleDouble 07.10.2014 - 19:24
fonte

1 risposta

4

Questa domanda è molto soggettiva.

Nella mia esperienza, ho trovato che gli elenchi di parametri sono chiari quando soddisfano i seguenti criteri:

  • L'oggetto principale su cui opera il metodo o la funzione viene prima. In inglese, una frase potrebbe contenere un nome, un verbo e un altro nome su cui il verbo potrebbe agire. Ad es .: "Alice invia un messaggio." In gergo OO, "Alice" potrebbe essere l'oggetto a cui appartiene il metodo. "Sends" potrebbe essere il metodo stesso e "un messaggio" è il suo parametro: alice.sends(message) . Forse ci sono altri parametri, ma dovrebbero leggere più o meno come una frase: "Alice manda un messaggio, ma si arrende dopo 30 secondi se nessuno ascolta." %codice%. È naturale, i nostri cervelli sono già addestrati a pensare in questo modo sin dalla tenera età.

  • Se ci sono più di (inserire i numeri soggettivi qui, forse quattro o cinque), suddividere in qualche modo la chiamata al metodo. Forse c'è un oggetto (ad esempio builder ) che urla di essere rielaborato. Se un elenco di parametri è abbastanza lungo da dover fare questa domanda, è già abbastanza lungo da essere difficile da capire.

risposta data 07.10.2014 - 21:29
fonte