Sto lavorando a un progetto personale che ha un'interfaccia utente abbastanza complessa. Per quanto possibile vorrei rimuovere l'interazione del mouse. Per aiutarlo sto lavorando su una specie di linea di comando in app, dove puoi trovare tutte le azioni aprendo un popup e digita i nomi per eseguirle. (pensa intellij ctrl-shift-a, o eclipse ctrl-f12). Mi piacerebbe anche un modo per aggiungere un modo per passare un argomento al comando (ad esempio skipback 50s
)
Sto avendo difficoltà a capire come progettare questo. Attualmente la mia idea è di avere un oggetto Commands
comune che contenga tutti i comandi e un'interfaccia Command
che contenga logica, un nome descrittivo e una descrizione arg (se presente). Parte del problema è che alcune azioni possono essere eseguite solo in determinati contesti, e l'altro problema è dove mettere il singolo Command
s (questo è un problema perché gli oggetti scala sono pigri e non saranno aggiunti al Commands
oggetto fino a dopo essere stato referenziato). Inoltre, non sono sicuro di come mantenere la sicurezza del tipo, dal momento che thees Command
s sarà anche collegato ai ganci dell'interfaccia utente all'interno dell'app.
Qualche idea su come risolvere questo problema e / o migliorare il modello attuale?