Buon modo per passare le variabili per gli elementi comuni ai modelli Mako?

StackOverflow https://stackoverflow.com/questions/1830042

  •  11-09-2019
  •  | 
  •  

Domanda

Sto utilizzando le funzionalità di eredità di Mako per scomporre gli elementi della pagina comuni, come un colpo di testa e piè di pagina, in un modello "base.mako". controller specifici della pagina utilizzare i propri modelli, che ereditano base.mako.

base.mako ha bisogno di un insieme di variabili - per esempio, il nome dell'utente connesso va nell'intestazione per tutte le pagine. Tuttavia, è il controllore singola pagina che seleziona e rende il modello, ed è quindi responsabile del passaggio variabili da esso.

Preferirei tutti quei controllori di pagina non devo sapere qual è il modello di base ha bisogno nel suo contesto. Che cosa è un buon modo per stabilire il contesto per il modello base in una situazione come questa?

Grazie in anticipo!

È stato utile?

Soluzione

Hai due scelte progettuali OO per i controller di pagina.

Caratteristiche comuni possono essere gestiti in due modi.

  • L'ereditarietà. Tutti i controllori di pagina sono sottoclassi di una classe comune che fornisce gli attributi comuni.

  • Delegazione. Tutti i controllori di pagina sono parte di un oleodotto in cui qualche processo comune (prima o dopo il controller pagina) si ripiega nelle informazioni aggiuntive.

Devi scegliere uno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top