私はJavaプログラムで違法な状態を処理すべき概念について現実的に考えています。 画像に処理ステップを実行するクラスを導入しました。例外スロー専用のメソッドを導入するのは悪い決定ですか?
public class ImageProcessor{
public Image processImage(Image img){
//do some processing steps
}
}
ここで、処理を行う前に画像を確認する別のクラスを紹介します。
public class ImageChecker{
public void checkImage(Image img) throws ImageNotProcessableException{
//for example, if the image has a width of 0 the full process
//should be broken, throw an exception
if (img.width=0) throw new ImageNotProcessableException("width is 0");
//other conditions throwing also exceptions
// the image is fine, do nothing
}
}
2つのクラスは、Coordinatorクラスで使用する必要があります。
public class Coordinator{
public void coordinate(Image img) throws ImageNotProcessableException{
//initialize both
imageChecker.checkImage(img); //if no exception is throw the process can run
imageprocessor.processImage(img);
}
}
ここで問題は、例外(別のメソッドを定義する)を悪いコーディングスタイルとして扱うかどうかです。この設計の考え方は、例外処理を伴う処理コードの汚染を防ぐことでした。私はコーディネーターに例外を投げて欲しいと思っており、これは感覚的な方法かもしれないと思いました。あなたはどう思いますか?これは良い方法ですか、それとも反パターンですか? ありがとう!
'imageChecker'は実際には複数の他のクラスにとって有用な別のクラスですか、それとも' imageProcessor'に固有のチェックですか?そして、 'imageChecker'にはいくつのメソッドがありますか? –