… Logger logger=getLogger(); if (logger!= null) { logger.writeError("Crash!"); } …
DRY!! if (logger != null)x42 Scomodo da leggere Un giorno qualcuno si dimenticherà di verificare !=null è la produzione farà: Bum! NullPointer!
public Logger getLogger() { return myLogger == null ? new NullLogger() : myLogger; } public class NullLogger extends Logger {... public void writeError() { //si, questo è un logger che non fa nulla... }... }
Clean code that works --Ron Jeffries, ovviamente
Insegnare la semplicità Teach by Example NullLogger Teach by Language Un dizionario comune fa miracoli (Coesione, Refactoring, Pattern) Occhio al Singleton
Senza il Refactoring? IMVVHO, No (In My Very Very Humble Opinion, No)
Senza il Testing? IMVVHO, Si (In My Very Very Humble Opinion, Si)