Open francescoopiccoli opened 3 years ago
la butto lì...
view: una classe per ogni finestra + widget (sidebar, book panel...) + error dialog + tema
controller: una classe per ogni finestra + exception + lib + search engine + tag manager + API manager + DBManager + DataFormatter, RankingGenerator
model: Book, Bookshelf, Tag, Author
Storage: Flat file (serializzazione)
View
Una classe per ogni singola pagina/finestra che ci sarà: VBooks, VLists, VRankings, VDiscover, Vmylibrary, Vbook, VList, VRanking... In queste classi solo il codice per creare le pagine gli elementi GUI (buttons, dropdown, textfield..) e i metodi per aggiungere event listener ad un elemento e mostrare pop-up window (per errors).
ludo - la ranking list potrebbe essere una subclass di lists ordinata
Controller
Una classe per ogni singola classe della view (CBooks, CLists..) e una classe "Lib" per tenere tutti il codice reusable comune a tutte le classi. In questi classi ci sono tutti gli event listener per la GUI e le chiamate ai metodi del Model.
Model
Non una classe per ogni view come prima, solo alcune (?): (MList, MBook, MRanking..) che sono di fatto le classi rappresentanti l'oggetto libro, lista.. Una classe Database che interagisce con l'API (Google books API) e recupera dati dai file JSON.
Classi per la gestione degli errors/exceptions Classe per main method e launch del programma
ludo - forse si potrebbe anche creare la classe Tag e mettere una lista di tags per ogni libro