2009-12-02 3 views
1

마코의 상속 기능을 사용하여 머리말과 꼬리말 같은 일반적인 페이지 요소를 "base.mako"템플릿으로 분해합니다. 페이지 고유 컨트롤러는 base.mako를 상속받은 자체 템플릿을 사용합니다.공통 요소에 대한 변수를 Mako 템플릿에 전달하는 좋은 방법은 무엇입니까?

base.mako에는 일련의 변수가 필요합니다. 예를 들어 로그온 한 사용자의 이름은 모든 페이지의 헤더에 있습니다. 그러나 템플릿을 선택하고 렌더링하는 것은 개별 페이지 컨트롤러이므로 변수를 템플릿에 전달해야합니다.

나는 이러한 모든 페이지 컨트롤러가 기본 템플릿의 컨텍스트에서 무엇을 필요로하는지 알 필요가 없다. 이와 같은 상황에서 기본 템플릿의 컨텍스트를 설정하는 좋은 방법은 무엇입니까?

미리 감사드립니다.

답변

0

귀하의 페이지 컨트롤러에 대한 OO 설계는 두 가지가 있습니다.

일반적인 기능은 두 가지 방법으로 처리 할 수 ​​있습니다.

  • 상속. 모든 페이지 컨트롤러는 공통 속성을 제공하는 공통 클래스의 하위 클래스입니다.

  • 위임. 모든 페이지 컨트롤러는 추가 정보에서 몇 가지 공통 프로세스 (페이지 컨트롤러 이전 또는 이후)가 폴드되는 파이프 라인의 일부입니다.

하나를 골라야합니다.

+0

처음 대답을 읽었을 때 좀 더 구체적인 조언이 필요하다고 생각했습니다. 추가 숙고 후에 나는 당신이 말한 것이 실제로 더 도움이된다는 것을 깨달았습니다. 제가 한 발 뒤로 물러나서 좀 더 일반적인 용어로 문제를 생각해 내도록 요구했습니다. 고맙습니다! – jgarbers

+0

@ jgarbers : 미안하지만, 일반적인 기능을 관리하는 데 "표준 문제"가 있습니다. –