Thread 的 run 和 start 是一个比较典型的模板设计模式,父类编写算法结构,子类实现逻辑细节。
二 模板设计模式 1 代码package concurrent;public class TemplateMethod { public final void print(String message) { System.out.println("**********************"); wrapPrint(message); System.out.println("**********************"); } protected void wrapPrint(String message) { } public static void main(String[] args) { TemplateMethod t1 = new TemplateMethod() { @Override protected void wrapPrint(String message) { System.out.println("*" + message + "*"); } }; t1.print("hello thread"); TemplateMethod t2 = new TemplateMethod() { @Override protected void wrapPrint(String message) { System.out.println("+" + message + "+"); } }; t2.print("hello thread"); }}
2 测试***********************hello thread*********************************************+hello thread+**********************
三 说明print 方法类似 Thread 的 start 方法,而 wrapPrint 则类似于 run 方法,这样做的好处是,程序结构由父类控制,并且是 final 修饰的,不允许被子类重写,子类只需要实现想要的逻辑即可。