Ho programmato in Java per circa 6 mesi, e ho pensato che un test valido e impegnativo delle mie capacità sarebbe stato quello di costruire un calcolatore GUI. Di recente ho sentito parlare di questa idea di MVC e ho pensato (forse follemente) che sarebbe stato adatto per questo progetto per animali domestici. Ma mi trovo nei guai durante la progettazione, e non sono sicuro di come procedere.
Quindi ho una Model
, View
e Controller
class. Il Model
è responsabile di tutto il calcolo effettivo; il View
disegna la calcolatrice e il display; e Controller
:
- passa il clic del pulsante a
View
- ottiene il valore di visualizzazione da
Model
e lo passa aView
Ah, ma i pulsanti! Voglio avere un'interfaccia Button
, in cui un'istanza Button
ha:
- (unico) numero ID;
- Nome;
- funzione.
Quindi vorrei che il mio Controller
costruisse un insieme di Button
s, e [non sono sicuro di come farlo] lascia che sia View
che Model
usino quei pulsanti: View
per il disegno, Model
per il calcolo. Così ho la lista riveduta per Controller
:
- passa i clic a
View
- return
Button
ID aModel
- ottieni il valore di visualizzazione da
Model
e passa aView
Ma più lavoro su questo, più non riesco a capire come tutto questo si possa ottenere. Quindi ho diverse domande correlate:
- Dovrebbe essere veramente
View
responsabile dell'ordinamento su cuiButton
corrisponde a un clic? Dovrebbe essere fatto inController
? - Devo avere più di un tipo di
Button
? È necessario distinguere tra numeri, operatori, uguali, ecc.? Quale delle tre classi MVC deve conoscere la differenza? - MVC è anche il modo giusto per andare qui? Esiste un modo più fondamentale e accettato di costruire un calcolatore OOP?
- Se MVC è davvero appropriato, cosa sto facendo male? Penso che l'aggiunta di
Button
s mi abbia davvero buttato fuori.