Per contesto, questo progetto è un programma di bilancio personale su cui sto lavorando mentre cerco di imparare a utilizzare i pattern MVC in modo efficace.
C'è un SessionController che passa i comandi dell'utente a un MonthController. Ogni controller ha un parser che associa i comandi ai metodi del controller.
Attualmente, il controllore ha un oggetto Month come attributo e chiama direttamente i metodi del modello. Assomiglia a questo:
class MonthController(Controller):
def __init__(self, budget, *args, **kwargs):
Controller.__init__(self, *args, **kwargs)
self.month = budget.get_current_month()
def add_transaction(self, params):
# get user data, do parameter validation here
self.month.add_transaction(params)
Questa normale implementazione di MVC? Ci sono delle insidie nel permettere al Controllo di "possedere" un oggetto Modello che dovrei cercare?
Inoltre, ho intenzione di avere il SessionController "proprietario" di un numero di Visualizzazioni. Una di queste viste avrà anche un attributo Month (ma solo i metodi call read-only). Non riesco a capire perché, ma questo sembra sbagliato. Sono fuori pista, o è questo MVC standard?