2009-12-02 2 views
1

J'utilise les fonctions d'héritage de Mako pour factoriser des éléments de pages communs, comme un en-tête et un pied de page, dans un modèle "base.mako". Les contrôleurs spécifiques à la page utilisent leurs propres modèles, qui héritent de base.mako. Base.mako a besoin d'un ensemble de variables - par exemple, le nom de l'utilisateur connecté va dans l'en-tête de toutes les pages. Cependant, c'est le contrôleur de page individuel qui sélectionne et rend le modèle, et est donc responsable de lui passer des variables.Bon moyen de passer des variables pour les éléments communs aux modèles Mako?

Je préfère que tous ces contrôleurs de pages n'aient pas besoin de savoir de quoi le modèle de base a besoin dans son contexte. Quel est un bon moyen d'établir le contexte pour le modèle de base dans une situation comme celle-ci?

Merci d'avance!

Répondre

0

Vous avez deux choix de conception OO pour vos contrôleurs de page.

Les fonctions communes peuvent être manipulées de deux manières.

  • Héritage. Tous les contrôleurs de page sont des sous-classes d'une classe commune qui fournit les attributs communs.

  • Délégation. Tous les contrôleurs de page font partie d'un pipeline où un processus commun (avant ou après le contrôleur de page) se plie dans les informations supplémentaires.

Vous devez en choisir un.

+0

Quand j'ai lu votre réponse, j'ai pensé que je voulais des conseils plus précis. Après un examen plus approfondi, je me suis rendu compte que ce que vous avez dit est en fait plus utile, exigeant que je prenne du recul et que je réfléchisse au problème en termes plus généraux. Je vous remercie! – jgarbers

+0

@jgarbers: Désolé de vous avoir fait réfléchir, mais vous avez "le problème standard" de la gestion des fonctionnalités communes. –

Questions connexes