Sto implementando un sistema di validazione che ha alcuni vincoli, ci sono una categoria di utenti diciamo 30 e per ogni categoria ci sono un certo numero di regole. In realtà ci sono 100 diverse regole.
Ho una multimap che mappa dato user_category_id alla lista di rule_id's.
Vincolo 1. La regola dovrebbe essere eseguita solo se è abilitata per quella categoria utente. Le regole sono configurate in modo diverso in base al relativo aggiornamento o inserimento.
Qui sto pensando di usare il modello di strategia per convalidare le regole.
Dal contesto passerò come parametro (user_category_id, rule_id's list e se è per Update o insert). Ogni regola, credo, dovrebbe essere una classe separata con metodi per ottenere il valore id della regola, eseguire il metodo per la determinata categoria utente e la logica in base al relativo aggiornamento o inserimento.
Quindi la classe di contesto avrà la multimap per user_category_Id su rule_id. e il valore per la convalida della regola per l'aggiornamento o l'inserimento.
Nell'interfaccia di IStrategy avrà la firma del metodo. Ma quale sarebbe il tipo di ritorno del metodo di cui non sono sicuro. Esiste una classe Response che incapsula la mia risposta e viene inviata all'utente.
L'ultima parte è come progettare la logica della regola. Ci sono centinaia di regole diverse. Come andare su questo compito? Dovrei incapsulare tutte le oltre 100 regole in classi separate? Sento che dovrei usare lo schema della strategia, ma non sono chiaro su come eseguire l'implementazione? Ho bisogno di una guida. Fammi sapere se sono necessarie ulteriori informazioni per il lavoro di progettazione di cui sopra. Qualsiasi suggerimento e guida per migliorare il design di cui sopra sarà molto apprezzato.