Buon modello di progettazione per abilitare / disabilitare determinate funzionalità in base alle condizioni

0

Sto lavorando su un'applicazione di tipo di vernice in Android. Ho la barra degli strumenti sulla sinistra che contiene strumenti come undoCut, redoCut, box, frame, cutting, coloring, next, previous etc. Volevo sapere qual è il modo migliore (pattern di progettazione) per implementare tale comportamento. Come eseguire azioni contro ogni strumento. Abilita / Disabilita strumenti in alcune condizioni. come nell'immagine allegata c'è una barra degli strumenti a sinistra in cui alcuni controlli vengono abilitati e disabilitati in base ad alcune condizioni. Come Photoshop, fallo. Fino ad ora quello che sto facendo è memorizzato le informazioni sulla barra degli strumenti in array e iniziare a scrivere se le istruzioni come
if (modelsView.getchildCount() > 0 && modelsPanelSelected) tools.hcutBtn.setEnabled(true); . Ma questa idea non è un buon modello di progettazione, immagino perché ci sarebbero più di 40 se le affermazioni se inizio a soddisfare ogni scenario. Quindi voglio sapere quale potrebbe essere l'opzione migliore possibile mi serve per raggiungere questo obiettivo? Non sto chiedendo di darmi il codice ma un buon modello di progettazione possibile per soddisfare questo scenario.

    
posta james 18.02.2016 - 07:52
fonte

2 risposte

1

Secondo il requisito dato, a quanto pare, alcuni modelli comportamentali possono essere considerati.

  1. Modello Oberserver
  2. Modello di strategia
  3. Modello di stato

In generale, è anche consigliabile pensare se il modello è davvero necessario, altrimenti diventa eccessivo.

    
risposta data 18.02.2016 - 08:07
fonte
0

Se hai creato la vista sottoclasse per ogni strumento piuttosto che sarebbe facile mantenere la condizione di abilitazione / disabilitazione. Basta mantenere l'ultimo strumento selezionato, quando selezioni un nuovo strumento, deseleziona quello precedente (con tipo sì / no di setter). Gli schemi di osservazione e strategia potrebbero essere eccessivi, ma se lo desideri puoi esaminarli.

    
risposta data 18.02.2016 - 08:17
fonte

Leggi altre domande sui tag