Design Pattern for Data Validation

19

Quale sarebbe il miglior schema di progettazione per questo problema:

Ho un oggetto A. L'oggetto A può essere registrato o eliminato dal database a seconda della richiesta dell'utente.

La convalida dei dati viene eseguita prima della registrazione o della cancellazione dell'oggetto. Ci sono una serie di regole da controllare prima che l'oggetto possa essere registrato e un altro insieme di regole per la cancellazione. Alcune di queste regole sono comuni per entrambe le operazioni.

Finora, penso che il Chain of Responsibility modello di progettazione si adatti al massimo ma io Ho problemi con l'implementazione.

    
posta melodui 03.04.2014 - 05:50
fonte

2 risposte

9

Normalmente userò una classe di convalida separata per convalidare ogni caso d'uso. Per esempio. Prima di aggiungere il prodotto al database, userò AddProductValidator per convalidare la regola aziendale, prima di eliminare il prodotto, userò DeleteProductValidator per convalidare, ecc. La regola aziendale comune può essere estratta in classe specifica (modello Specification) e condivisa dalle classi validator

Per strutturare la classe del validatore, seguo l'approccio qui: link

Se usi .NET, penso che potresti voler prendere in considerazione la convalida di Fluent ( link ). Penso che sia abbastanza interessante e abbastanza vicino all'articolo che ho citato sopra

    
risposta data 30.10.2014 - 08:48
fonte
4

Come descritto, probabilmente implementerei un tipo di opzione . In questo modo potrei restituire un "None" o un valore convalidato (forse pigramente) ma questo è un dettaglio di implementazione e porta bene all'idea di usare un Decorator .

Ovviamentesel'interfacciadiventabruttausereiuna facciata .

    
risposta data 03.04.2014 - 07:03
fonte

Leggi altre domande sui tag