Un factory di classe può anche salvare l'oggetto in un database?

0

Come può una fabbrica anche salvare l'oggetto nel database?

Voglio creare un oggetto costituito da altri oggetti.

Pseudocodice:

firstObject = db.get....;
secondObject = db.get....;
expectedObject = new ExpectedObject(firstObject, secondObject, userId, datetime);

Questo è il compito per il modello di fabbrica. Ma vorrei anche salvare il mio nuovo oggetto (expectedObject) nel database.

db.save(expectedObject);

Posso farlo in questa fabbrica o dovrebbe essere un servizio separato?

    
posta cerulabet 16.10.2018 - 20:24
fonte

1 risposta

2

In breve tutte le classi dovrebbero avere una singola responsabilità , descrivo la classe a me stesso e Se ho bisogno di usare < strong> AND o ANCHE , divido la funzione della classe su quella parola. Quindi qui dividi i tuoi requisiti in creazione e salvataggio .

Una classe Factory può essere utilizzata per creare Oggetti di trasferimento dati che comprendono come salvare se stessi in un database. Il codice Pseudo sarebbe simile a questo:

DTO customer = Factory.createCustomer();
customer.saveTo(db);

Le classi di nomi per gli oggetti dovrebbero generalmente riflettere quella singola responsabilità dal dominio aziendale, quindi Customer o Address , è abbastanza comune postfixare il nome della classe con qualcosa come DTO. con quello così CustomerDto o AddressDto .

    
risposta data 16.10.2018 - 20:36
fonte