Il design by contract
In un articolo precedente [1] abbiamo esaminato in dettaglio l'utilizzo delle interfacce in Java e i loro vantaggi. Avevamo anche osservato una limitazione di fondo nella definizione delle interfacce: non è infatti possibile specificare condizioni sul comportamento dei metodi se non attraverso la documentazione. Una possibile alternativa potrebbe essere rappresentata dai metodi formali di specifica ma il loro costo è spesso eccessivo