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
Modele 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
ButtonID aModel - ottieni il valore di visualizzazione da
Modele 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
Viewresponsabile dell'ordinamento su cuiButtoncorrisponde 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
Buttons mi abbia davvero buttato fuori.