2009-12-02 24 views
1

我使用Mako的繼承功能將常見頁面元素(如頁眉和頁腳)分解爲「base.mako」模板。頁面特定的控制器使用自己的模板,它繼承base.mako。將常用元素的變量傳遞給Mako模板的好方法?

base.mako需要一組變量 - 例如,登錄用戶的名稱進入所有頁面的標題。但是,它是單個頁面控制器選擇並呈現模板的工具,因此負責將變量傳遞給它。

我寧願所有這些頁面控制器都不必知道基本模板在上下文中需要什麼。在這種情況下建立基本模板的上下文有什麼好方法?

在此先感謝!

回答

0

您有兩個面向頁面控制器的面向對象設計選擇。

可以通過兩種方式處理共同特徵。

  • 繼承。所有頁面控制器都是提供公共屬性的公共類的子類。

  • 代表團。所有頁面控制器都是流水線的一部分,其中一些常用的流程(在頁面控制器之前或之後)會摺疊附加信息。

你必須選擇一個。

+0

當我第一次看到你的答案時,我想我想要更具體的建議。經過進一步的思考,我意識到你所說的實際上更有幫助,需要我退後一步,用更一般的術語來思考問題。謝謝! – jgarbers 2009-12-02 13:55:53

+0

@jgarbers:對不起,讓你覺得,但你有管理常見功能的「標準問題」。 – 2009-12-02 15:39:02