קוד לדוגמה:
הדוגמה הבאה ב ++C מראה איך parent class יכול לקבוע תכונות מסוימות בפעולות של ה subclass ים שלו. ניקח מחלקה
View שתומכת בציור על מסך. View מכריחה את התכונה שה subclass ים שלה יכולים לצייר רק אחרי שהם ב"פוקוס", כלומר במצב מסוים שמאפשר לצייר (למשל לאחר שנקבעו צבעים, פונטים וכו').
אפשר להשתמש ב template method אשר תיקרא Display() כדי להבטיח תכונה זו.
View יגדיר שתי concrete operations, שיקראו SetFocus() ו ResetFocus(), הראשונה מאתחלת את המצב והשניה מנקה אותו. ל
View יש גם hook operation שנקראת
DoDisplay() שמבצעת את פעולת הציור עצמה.
Display() קוראת ל SetFocus()
לפני הקריאה ל DoDisplay() כדי לקבוע את המצב לציור, והיא קוראת בסוף ל
ResetFocus() כדי לנקות את המצב:
void View::Display() {
SetFocus();
DoDisplay();
ResetFocus();
}
כדי לשמור על תכונה זו הקליינטים של View תמיד קוראים ל
Display() וה subclass ים של
View תמיד דורסים את DoDisplay() ומממשים אותה מחדש.
DoDisplay() עצמה לא עושה כלום ב
View:
void View::DoDisplay() { }
subclass ים דורסים אותה כדי להוסיף את ההתנהגות הספציפית להם של איך לצייר:
void MyView::DoDisplay() {
// render the view's contents
}