La proliferazione di @staticmethod è un odore di codice?

2

Considera una classe Python con un numero di metodi @staticmethod e pochi metodi di istanza. I metodi statici non accettano un'istanza della classe che definisce come parametri.

  • Pensi che tutti questi metodi statici non appartengano alla classe e debbano essere scomposti?
  • Se sì, quale approccio prenderesti per ripulire tale codice?
posta 9000 03.10.2011 - 18:22
fonte

1 risposta

8

Sembra un modulo mascherato da una classe (che è comune vedere in una lingua come Java dove non ci sono metodi al di fuori delle classi, quindi l'unico modo per fare qualcosa che assomiglia a un modulo è di fare una sola classe statica ). Se i metodi statici stanno facendo qualcosa che è effettivamente correlato alla classe nel suo insieme, come la gestione di un gruppo di essi, la generazione di essi (fabbriche) o qualcosa del genere allora sì, potrebbero essere metodi statici legittimi. Altrimenti, probabilmente dovrebbero essere solo metodi a livello di modulo.

    
risposta data 03.10.2011 - 18:34
fonte

Leggi altre domande sui tag