┌───────────────────┐ │BookAdminController│ ├───────────────────┤ │+insert() │ └───────────────────┘ | | ┌──────────────────────┐ │BookInsertAdminUseCase│ ├──────────────────────┤ │{abstract} +execute() │ └──────────────────────┘ | ┌──────────────────────────┐ │BookInsertAdminUseCaseImpl│ ├──────────────────────────┤ │+execute() │ └──────────────────────────┘ | | ┌────────────────────────┐ ┌──────────────────────┐ ┌──────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐ │BookAdminService │ │PublisherAdminService │ │CategoryAdminService │ │AuthorAdminService │ │GenreAdminService │ ├────────────────────────┤ ├──────────────────────┤ ├──────────────────────┤ ├─────────────────────────┤ ├─────────────────────────┤ │{abstract} +findByIsbn()│ │{abstract} +findById()│ │{abstract} +findById()│ │{abstract} +findAllById()│ │{abstract} +findAllById()│ │{abstract} +save() │ └──────────────────────┘ └──────────────────────┘ └─────────────────────────┘ └─────────────────────────┘ └────────────────────────┘ | | ┌────────────────────┐ ┌─────────────────────────┐ ┌────────────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐ │BookAdminServiceImpl│ │PublisherAdminServiceImpl│ │CategoryAdminServiceImpl│ │AuthorAdminServiceImpl│ │GenreAdminServiceImpl│ ├────────────────────┤ ├─────────────────────────┤ ├────────────────────────┤ ├──────────────────────┤ ├─────────────────────┤ │+findByIsbn() │ │+findById() │ │+findById() │ │+findAllById() │ │+findAllById() │ │+save() │ └─────────────────────────┘ └────────────────────────┘ └──────────────────────┘ └─────────────────────┘ └────────────────────┘ | | | | ┌────────────────────────┐ | | │BookAdminRepository │ ┌────────────────────────┐ ┌───────────────────────┐ ┌─────────────────────────┐ ┌─────────────────────────┐ ├────────────────────────┤ │PublisherAdminRepository│ │CategoryAdminRepository│ │AuthorAdminRepository │ │GenreAdminRepository │ │{abstract} +findByIsbn()│ ├────────────────────────┤ ├───────────────────────┤ ├─────────────────────────┤ ├─────────────────────────┤ │{abstract} +save() │ │{abstract} +findById() │ │{abstract} +findById() │ │{abstract} +findAllById()│ │{abstract} +findAllById()│ └────────────────────────┘ └────────────────────────┘ └───────────────────────┘ └─────────────────────────┘ └─────────────────────────┘ | | ┌───────────────────────┐ ┌────────────────────────────┐ ┌───────────────────────────┐ ┌─────────────────────────┐ ┌────────────────────────┐ │BookAdminRepositoryJdbc│ │PublisherAdminRepositoryJdbc│ │CategoryAdminRepositoryJdbc│ │AuthorAdminRepositoryJdbc│ │GenreAdminRepositoryJdbc│ ├───────────────────────┤ ├────────────────────────────┤ ├───────────────────────────┤ ├─────────────────────────┤ ├────────────────────────┤ │+findByIsbn() │ │+findById() │ │+findById() │ │+findAllById() │ │+findAllById() │ │+save() │ └────────────────────────────┘ └───────────────────────────┘ └─────────────────────────┘ └────────────────────────┘ └───────────────────────┘