ジョンR.:
私は、ユーザーからの入力として受信したファイルのパスを検証する必要があります。私の問題は、私は、私の意見では、コードは、ビット乱雑に見える「場合は、」あまりにも多くを使用する必要があることです。私は、パターン「責任の連鎖」を使用して、この条件文をevitateするために私ができることを知っているが、これaprochはあまりにも私の問題のために少し複雑であると思われます。私が意味する、私は本当にそれぞれの検証のために新しいクラスを作りたいdont't。
ここに私のコードは次のとおりです。
public boolean isValidFile(String filePath) {
File file = new File(filePath);
if(!getFileExtension(file).equals("txt")) {
return false;
}
if(!file.exists()) {
return false;
}
if(!file.isFile()) {
return false;
}
if(file.isHidden()) {
return false;
}
if(!file.canExecute()) {
return false;
}
if(!file.canRead()) {
return false;
}
return true;
}
助言がありますか?
kabanus:
これは、ベースの意見であってもよく、あなたの関数は(...私の意見では)かなり読みやすいですが、いくつかの他のオプションがあなたのために開きます。
if(!getFileExtension(file).equals("txt")) return false;
if(!file.exists()) return false;
...
若しくは
if(!getFileExtension(file).equals("txt") ||
!file.exists() ||
...
!file.canRead()) return false;
若しくは
return (
getFileExtension(file).equals("txt") &&
file.exists() &&
...
file.canRead());
これは有効なファイルのための要件を書くより直接的な方法かもしれません。