carfield.com.hk TemplateMethod.java 2001-12-26T16:00:00Z 2001-12-26T16:00:00Z <br/><TEXTAREA name="code" class="java" rows="16" cols="100">//: c03:TemplateMethod.java // Simple demonstration of Template Method. import com.bruceeckel.test.*; abstract class ApplicationFramework { public ApplicationFramework() { templateMethod(); // Dangerous! } abstract void customize1(); abstract void customize2(); // &quot;private&quot; means automatically &quot;final&quot;: private void templateMethod() { for(int i = 0; i &lt; 5; i++) { customize1(); customize2(); } } } // Create a new &quot;application&quot;: class MyApp extends ApplicationFramework { void customize1() { System.out.print(&quot;Hello &quot;); } void customize2() { System.out.println(&quot;World!&quot;); } } public class TemplateMethod extends UnitTest { MyApp app = new MyApp(); public void test() { // The MyApp constructor does all the work. // This just makes sure it will complete // without throwing an exception. } public static void main(String args[]) { new TemplateMethod().test(); } } ///:~ </TEXTAREA><br><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2001-12-26T16:00:00Z TemplateMethod.py 2001-12-26T16:00:00Z 2001-12-26T16:00:00Z <br/><TEXTAREA name="code" class="py" rows="16" cols="100">#: c03:TemplateMethod.py # Simple demonstration of Template Method. class ApplicationFramework: def __init__(self): self.__templateMethod() def __templateMethod(self): for i in range(5): self.customize1() self.customize2() # Create a &quot;application&quot;: class MyApp(ApplicationFramework): def customize1(self): print &quot;Nudge, nudge, wink, wink! &quot;, def customize2(self): print &quot;Say no more, Say no more!&quot; MyApp() #:~</TEXTAREA><br><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2001-12-26T16:00:00Z makefile 2001-12-26T16:00:00Z 2001-12-26T16:00:00Z <br/><TEXTAREA name="code" class="" rows="16" cols="100"># From Thinking in Patterns (with Java) by Bruce Eckel # At http://www.BruceEckel.com # (c)2001 Bruce Eckel # Copyright notice in Copyright.txt # Automatically-generated MAKEFILE # For examples in directory .\c03 # using the JDK 1.3 compiler # Invoke with: make HOME := ../ ifndef MAKECMDGOALS MAKECMDGOALS := javac endif # Command.com is too weak to build this under Windows NT/2000: ifeq ($(OS),Windows_NT) COMSPEC=$(SYSTEMROOT)\system32\cmd.exe endif ifneq ($(MAKECMDGOALS),clean) include $(HOME)/$(MAKECMDGOALS).mac endif .SUFFIXES : .class .java .java.class : $(JVC) $(JVCFLAGS) $&lt; javac: \ TemplateMethod.class jikes: \ TemplateMethod.class clean: ifeq ($(notdir $(SHELL)),COMMAND.COM) del *.class else rm -f *.class endif TemplateMethod.class: TemplateMethod.java $(JVC) $(JVCFLAGS) $&lt; java com.bruceeckel.test.RunUnitTests TemplateMethod </TEXTAREA><br><br/><script type="text/javascript"><!--google_ad_client = "pub-9426659565807829";google_ad_slot = "9359905831";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script> 2001-12-26T16:00:00Z