私が持っているWifiComponent
私にはCamera
私のクライアントアプリケーションで。カメラのWifi関連の機能を処理します。Cameraは実際のカメラを表します。
これWifiComponent
は、有効にすることができます(この場合、接続ステータスのチェックやスキャンなど、それを使って行うことができます)または無効にすることができます(この場合、有効かどうかを確認する以外は、何もできません)。
作成するときCamera
、私の中のクライアントアプリケーションを、私はそのかどうかを尋ねるカメラWifiComponent
有効になっています。次にWifiComponent
、WifiComponentImpl
またはの適切なサブクラスを作成しますNullWifiComponent
。
supportedWifiTypes()
およびwifiScan()
メソッドの実装は簡単です。NullWifiComponent
任意の種類をサポートしていない、すぐには結果をスキャンしないと発見して行われます。
しかし今、私はbool connect(WifiNetwork network, String password)
メソッドを実装する必要があります。接続に失敗したと言いたいのですが...でWifiEncryptionType
提供されているものもサポートしていませんWifiNetwork
。実際の実装ではIllegalArgumentException
、サポートされていないWifiEncryptionType
wifiネットワークを渡すとスローされます。
私は...
- リクエストを
IllegalArgumentException
サポートしていないため、スローWifiEncryptionType
しますか? return false
何が提供されていても、接続に失敗します()。
一般的な質問:
実際の実装が契約を満たし、この契約の一部が特定の入力に対して例外をスローすることである場合、null実装はその中立性または契約を優先する必要がありますか?
WifiEncriptionType
ので、カメラはを拒否しないため、をスローしないと言えIllegalArgumentException
ます。だから、投げないと契約違反になるとは思いません。