Come ottimizzare quasi duecento codici di casi di switch in Java
Strategy pattern
Più specificamente, guardate le condizioni di switch e le operazioni eseguite in ciascuna. Se trovate che il comportamento in ogni caso è abbastanza generale, definite un'interfaccia con un metodo di servizio appropriato per invocare e implementare il comportamento e poi implementate classi astratte e concrete come necessario per coprire tutti i casi.
Utilizzare poi una struttura Map per memorizzare le istanze delle varie implementazioni dell'interfaccia necessarie a coprire i casi e registrarle sotto ogni istanza del codice di commutazione. Riutilizzate le istanze delle implementazioni dell'interfaccia come necessario. Se lo state facendo bene, i metodi che implementano il vostro comportamento dovrebbero essere stateless e thread-safe.
A runtime, ottenete semplicemente il valore della condizione di switch dalla sua variabile di input, recuperate l'istanza che copre quel caso dalla Map ed eseguite il metodo di servizio. Voilà! Centinaia di linee di codice ridotte a due in fase di esecuzione e il numero di linee necessarie per registrare le vostre istanze condizionali all'avvio. Se prevedete di cambiare spesso le condizioni, potete anche scaricare la definizione di avvio e il registro in un file di risorse e caricarlo al suo posto, liberandovi del codice.
Articoli simili
- Perché non c'è quasi nessuna programmazione disponibile in TV per la TV 4k, eppure tutte le reti hanno abbracciato l'HDTV quasi dall'inizio?
- Come ottimizzare l'esperienza di un'app e di un sito web
- Come ottimizzare Windows 10 per 2GB di RAM
- Come si possono ottimizzare le prestazioni di un portatile HP Stream?