Book Management System (BMS)
詳細設計
Controller層
BookController
ResponseEntity<Book> addBook(Book book): 新規書籍を追加し、結果として追加された書籍を返します。
ResponseEntity<List<Book>> searchBooks(String keyword): キーワードに一致する書籍を検索し、結果として該当した書籍リストを返します。
ResponseEntity<Book> updateBook(Book book): 書籍を更新し、結果として更新された書籍を返します。
ResponseEntity<Void> deleteBook(Book book): 書籍を削除します。削除が成功したかどうかのみを返します。
ResponseEntity<List<Book>> bulkUpdateBooks(List<Book> books): 複数の書籍を一度に更新し、結果として更新された書籍リストを返します。
UserController
ResponseEntity<List<Book>> manageUserBooks(User user): ユーザーが所有する書籍を取得し、結果として該当した書籍リストを返します。
Service層
BookService
Book saveBook(Book book): 書籍を保存し、結果として保存された書籍を返します。
List<Book> findBooks(String keyword): キーワードに一致する書籍を検索し、結果として該当した書籍リストを返します。
Book updateBook(Book book): 書籍を更新し、結果として更新された書籍を返します。
void deleteBook(Book book): 書籍を削除します。削除が成功したかどうかのみを返します。
BookValidationService
boolean validateBook(Book book): 書籍の情報を検証します。ISBNが13桁の数字である、タイトルと著者が空白でない等、基本的な検証を行い、その結果をboolean値として返します。
BookBulkUpdateService
List<Book> bulkUpdateBooks(List<Book> books): 複数の書籍を一度に更新し、結果として更新された書籍リストを返します。
BookSearchService
List<Book> searchBooks(List<String> keywords): キーワードリストに基づいて書籍を検索し、結果として該当した書籍リストを返します。
BookReportService
Map<String, Integer> generateReport(List<Book> books): 書籍リストからジャンル別の書籍数を集計し、結果をマップとして返します。キーはジャンル、値はそのジャンルの書籍数となります。
Repository層
BookRepository
Book save(Book book): 書籍を保存し、結果として保存された書籍を返します。
Optional<Book> findById(Long id): 書籍をIDで検索し、結果として該当した書籍を返します。該当する書籍がない場合は空のOptionalを返します。
List<Book> findAll(): 全ての書籍を取得し、結果として書籍リストを返します。
void delete(Book book): 書籍を削除します。削除が成功したかどうかのみを返します。
Model層
Book
String getTitle(): 書籍のタイトルを返します。
void setTitle(String title): 書籍のタイトルを設定します。
String getAuthor(): 書籍の著者を返します。
void setAuthor(String author): 書籍の著者を設定します。
Date getPublishedDate(): 書籍の出版日を返します。
void setPublishedDate(Date date): 書籍の出版日を設定します。
String getISBN(): 書籍のISBNを返します。
void setISBN(String isbn): 書籍のISBNを設定します。
String getGenre(): 書籍のジャンルを返します。
void setGenre(String genre): 書籍のジャンルを設定します。
この記事が気に入ったらサポートをしてみませんか?