francescoopiccoli / Bookworm

0 stars 2 forks source link

MVC pattern - application classes #3

Open francescoopiccoli opened 3 years ago

francescoopiccoli commented 3 years ago

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

class diagram

cunidev commented 3 years ago

la butto lì...

Untitled Diagram

francescoopiccoli commented 3 years ago

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)