引数のエラーチェックをするべきか否か
現在オセロのコンソールアプリを作成中です。
そのアプリの中にあるPlayerというクラスはコマを置くマスを選択するIPlayerSelectorというインターフェースを実装したオブジェクトを持っており、コマを置くPlaceというメソッドでIPlayerSelectorで選択したマスに駒を置き、挟まれたコマをひっくり返すという実装にしようと考えています。
IPlaceSelector
{
///コマを置くマスを選択。
///有効な値のみを返す実装をする予定
(int x, int y) Select();
}
class Player
{
readonly IPlaceSerector _placeSelector;
public void Place()
{
(int x, int y) = _placeSelector.Select();
///x, yのマスに駒を置き挟まれた駒を裏返す処理
}
}
ここからが本題です。
IPlaceSelectorのSelectで帰ってくるx,yが有効な値かどうか(範囲内の値であるか、また裏返すことの出来るコマは存在するか等)をチェックするロジックはPlayerのPlaceの中に必要でしょうか。それとも無くても大丈夫でしょうか。
勿論あった方が親切だとは思うのですが、その辺の判定も含めてIPlaceSelecterの仕事だと思うのです。
エラーチェックは何処まで念入りにやるべきなのでしょうか。