Ho creato un algoritmo che calcola alcune cose. Questo può essere considerato come il modello. L'algoritmo è implementato in modo completamente funzionale, quindi utilizza solo classi immutabili. Ora usando questo modello, vorrei sviluppare un livello GUI in cima ad esso. Tuttavia non so nulla delle migliori pratiche di costruzione di GUI in Scala. Intendo usare ScalaFX.Scala, GUI e immutabilità
Il mio problema è il seguente: in ScalaFX (analogamente a JavaFX) è possibile associare valori dalla GUI alle proprietà dell'oggetto. Ciò viola chiaramente il paradigma funzionale, ma sembra molto conveniente. Ciò richiederebbe la riscrittura delle mie classi per usare proprietà legabili che sembrerebbero come la coda che agita il cane - il modello dipenderebbe dalla GUI.
D'altra parte, potrei avere un livello GUI indipendente. In questo caso avrei bisogno di oggetti proxy da associare e dovrei creare i miei oggetti modello basati su questi oggetti proxy. Questo sembrerebbe più idiomatico, ma implica molta duplicazione del codice e lavoro extra. Il mio modello e gli oggetti proxy dovrebbero essere mantenuti sincronizzati e dovrei occuparmi di copiare gli attributi.
Qual è un buon modo per farlo? Una GUI è sempre piena di mutevole, quindi la programmazione funzionale non si sente qui. Tuttavia, adoro Scala, quindi mi piacerebbe continuare a utilizzarlo anche per la GUI.
"Una GUI è sempre piena di mutevole, quindi la programmazione funzionale non si sente proprio qui.". Strizza l'occhio nel modo giusto e non è così mutabile: http://stackoverflow.com/questions/1028250/what-is-functional-reactive-programming –