C # Problema di progettazione [chiuso]

2

Sto costruendo una piccola applicazione e sto cercando di capire il modo migliore per avvicinarmi al design. Sto cercando qualche consiglio / consiglio su come affrontare al meglio il seguente problema.

Quello che ho è che ricevo un set di dati, in tempo reale. Quindi analizzo i dati per i pattern. I pattern sono classi che derivano da una classe astratta che implementa un'interfaccia. Il numero di motivi cambierà nel tempo man mano che i modelli vengono aggiunti / rimossi. Inoltre, a seconda del livello di accesso dell'utente, i dati vengono analizzati con diverse opzioni di modello.

Ad esempio, se ho cinque pattern, A, B, C, D ed E, l'accesso al livello 100 può solo analizzare i dati con il pattern A mentre il livello di accesso 300 analizzerà con i pattern B, D ed E, e il livello di accesso 500 analizzerà con tutti i modelli. I livelli di accesso sono collegati all'utente e un utente può avere diversi livelli di accesso su diversi flussi di dati.

Il mio pensiero è di creare una tabella hash o un dizionario per i pattern e un db per gli utenti e i loro vari livelli di accesso. È questo il modo migliore per andare o c'è un approccio migliore che funzionerà in tempo reale?

    
posta Zeos 24.01.2014 - 20:42
fonte

2 risposte

1

Sei sulla strada giusta, quello che hai descritto è un classico modello di strategia .

Sembra che ci sia una certa confusione intorno alla risposta e io elaborerò. La domanda è un po 'ambigua riguardo a ciò che viene chiesto e le domande così ampie sono solitamente contrassegnate, ma volevo rispondere alla sostanza generale.

La composizione dei comportamenti su una singola interfaccia consente di implementare più implementazioni e swapping in fase di esecuzione, che è la definizione di base di un modello di strategia. I comportamenti possono essere istanziati all'avvio o alla costruzione e quindi memorizzati in un semplice dizionario per la selezione per tasto in base alle necessità, o forse costruiti al volo secondo necessità tramite l'iniezione di dipendenza.

Diversi commentatori sembrano essere in disaccordo con la nozione di "tempo reale" in quanto tradizionalmente utilizzata come velocità dei risultati e la mia prospettiva rilevante per la domanda è semplicemente che i dati vengono elaborati per chiamata.

Infine, un archivio dati permanente di utenti e ruoli è esattamente ciò che è necessario per creare uno schema di autorizzazione per delimitare quali comportamenti possono essere utilizzati da quali utenti.

Spero che questo chiarisca la risposta.

    
risposta data 24.01.2014 - 21:04
fonte
0

Ho codificato un tipo simile di applicazione in cui ho vari livelli di accesso e modelli per analizzare i dati di input, in quel caso ciò che fa il mio team è stato creare tutti i pattern come child di una classe astratta e memorizzare il nome di tali classi nel database sono stati memorizzati anche gli utenti e il loro livello di accesso. Quando un utente accede al sistema, tutti i pattern per il suo livello sono stati caricati tramite riflessione. Nel nostro caso i dati erano il flusso di Twitter e analizziamo tutti i tweet per abbinarli a schemi predefiniti come "HasALink" o "MentionPeopleInList", la soluzione si comporta bene per noi.

    
risposta data 24.01.2014 - 20:34
fonte

Leggi altre domande sui tag