I need a help with deciding which structural patterns should I use in solving this problem.
You need to provide a model for information system for library. The system should support two basic functionalities that allow to the employee in library to:
- Updating a catalogue of books
- Publishing a book
Updating of the catalogue of books contains a possibility to add or edit category of books and add new books. Every category can contain random number of subcategories and books. For every category there is a name. For every book there is a title, year of publishing, ISBN and short description. Also for every book are stored information about her author (first name, last name and birth year). For the publisher of the book are stored information about the name of his company, place and country.
System should provide a possibility for searching the catalogue and finding books according to many criteria(title, name of author, ISBN) and inserting a data for publishing of the book in the card of the customer. After the publication of the book, the librarian print a card with data about the book and the customer should sign in on that card. For the printing of the cards there is a software. But it is not compatible with already existing software, so his class PrintManager with method printCard() should adopt.
What kind of structure is the one that stores information about the books?
Which structural design pattern would use to implement solution for this kind of system?