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 cheWifiEncryptionType
sia 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?