Model-View-Controller - Dove va una lezione di fabbrica?

2

Sto lavorando (lentamente) su un piccolo progetto di Flask. Uno dei miei modelli è una classe chiamata Post , che è un namedtuple leggero. Gli oggetti Post vengono creati da PostFactory , perché la creazione di Post comporta il raggiungimento di un database. PostFactory contiene la connessione al database necessaria, quindi gli oggetti Post possono essere serializzati.

Quale parte della divisione modello / vista / controller fa rientrare naturalmente un oggetto fabbrica? Fa parte dei modelli, poiché è strettamente associato agli oggetti Post ? O è un controller, dal momento che manipola i modelli?

    
posta Patrick Collins 25.12.2013 - 17:21
fonte

2 risposte

12

Probabilmente è una parte adeguata di un repository, che va nel tuo modello.

Qualsiasi macchinario che aiuti a cercare oggetti di dominio fa parte del modello. Molto probabilmente il controller chiamerà un metodo nel tuo repository, che a sua volta chiama la factory per ottenere l'oggetto Post . Oppure, puoi esporre il metodo factory dal tuo repository e consentire al controller di chiamarlo direttamente.

Favorisci sempre modelli più grassi e controller più sottili.

    
risposta data 25.12.2013 - 17:56
fonte
1

Il nome MVC è altamente semantico. Il modello è i tuoi dati, View è la tua interfaccia utente / interfaccia e il controller sono le operazioni che esegui sui dati. Nel tuo esempio, la tua ipotesi è corretta in quanto sarebbe considerata parte del controller in quanto sta manipolando i dati.

    
risposta data 25.12.2013 - 19:14
fonte

Leggi altre domande sui tag