Thread 的 run 和 start 是一个比较典型的模板设计模式,父类编写算法结构,子类实现逻辑细节。
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");
}
}
**********************
*hello thread*
**********************
**********************
+hello thread+
**********************
print 方法类似 Thread 的 start 方法,而 wrapPrint 则类似于 run 方法,这样做的好处是,程序结构由父类控制,并且是 final 修饰的,不允许被子类重写,子类只需要实现想要的逻辑即可。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/chengqiuming/article/details/122821345
内容来源于网络,如有侵权,请联系作者删除!