以下の問題をコーディングするための設計パターンまたは最良の方法を誰かが提案してくれるかどうか疑問に思っています。
1)以下のような本の配列リストがあります
list.add(new Book(title, author);
list.add(new Book(title1, author1);
等々....
2) そして今、リストからすべての本を著者別に見つけたいと思います
findByAuthor(String author) {
for(Book book : list){
if(book.getAuthor().equals(author)){
return book;
}
}
}
同様に、findByTitle() という別のメソッドがあります。ただし、book.getAuthor() が book.getTitle() でなければならないことを除いて、同じコードになります。すべてが同じになります。
3) これで、以下のように両方のメソッドにジェネリックなメソッドを作成できます。
findByBookProperty (String type, String propertyValue){
for(Book book : list)
if(type.equals("author") && book.getTitle().equals(propertyValue)){
return book;
} //another else if for author
//another else for another property
// if else repeats for all the required finder types...
}
}
4) ここでの問題は次のとおりです。1. finder 型に厄介な if/else 条件を使用したくありません。2.デザインパターンや、if elseやswichメソッドでこれを処理するより良い方法があるかどうかを知りたいです。
重要な注意: Spring コントローラー メソッドで、作成者名をリクエスト パラメーター値として取得します。
あなたの考えに感謝します。