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): ユーザーが所有する書籍を取得し、結果として該当した書籍リストを返します。

  1. 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): 書籍リストからジャンル別の書籍数を集計し、結果をマップとして返します。キーはジャンル、値はそのジャンルの書籍数となります。

  2. Repository層

    • BookRepository

      • Book save(Book book): 書籍を保存し、結果として保存された書籍を返します。

      • Optional<Book> findById(Long id): 書籍をIDで検索し、結果として該当した書籍を返します。該当する書籍がない場合は空のOptionalを返します。

      • List<Book> findAll(): 全ての書籍を取得し、結果として書籍リストを返します。

      • void delete(Book book): 書籍を削除します。削除が成功したかどうかのみを返します。

  3. 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): 書籍のジャンルを設定します。

この記事が気に入ったらサポートをしてみませんか?