Ho un WifiComponent nel mio Camera nella mia applicazione client. È responsabile della gestione della funzionalità Wifi della fotocamera. La fotocamera rappresenta una fotocamera reale.
Questo WifiComponent può essere abilitato (nel qual caso posso fare qualcosa con esso, come controllare lo stato della connessione e la scansione) o disabilitato (nel qual caso non puoi fare nulla con esso, a parte chiedere se è abilitato).
Quando creo un Camera nella mia applicazione client , chiedo alla telecamera se il suo WifiComponent è abilitato. Quindi costruisco la sottoclasse appropriata di WifiComponent , WifiComponentImpl o NullWifiComponent .
L'implementazione dei metodi supportedWifiTypes() e wifiScan() è semplice. NullWifiComponent non supporta alcun tipo, viene immediatamente eseguito con la scansione e non trova risultati.
Ma ora devo implementare un metodo bool connect(WifiNetwork network, String password) .
Voglio dire che non sono riuscito a connettermi ... Ma non supporto nemmeno il WifiEncryptionType fornito in WifiNetwork ! La vera implementazione genera un IllegalArgumentException se la passi con una rete wifi WifiEncryptionType non supportata.
I I ...
- Aumenta
IllegalArgumentException, perché non suppongo cheWifiEncryptionTypesia richiesto? - Non riesci a connettere in modo silenzioso (
return false), indipendentemente da cosa viene fornito?
Domanda generalizzata:
Se l'implementazione reale soddisfa un contratto e parte di questo contratto consiste nel generare eccezioni per determinati input, l'implementazione nulla deve dare priorità alla sua neutralità o al contratto?