要理解这两种设计模式首先要知道创建线程的两种方式!
创建线程有两种方式,一种是创建Thread,一种是实现Runnable接口,其实这种说法不严谨。准确的强,创建线程只有一种方式,那就是创建Thread类,而实现线程的执行单元有两种方式,一种是重写Thread类的run方法,另一种是实现runnable接口,并把Runnable实例当做参数传入到Thread构造方法中去。
1.模板设计模式
线程的真正的执行逻辑是在run方法中,通常我们会把run方法称为线程的执行单元,用start方法启动线程
Thread的run和start就是一个比较典型的模板设计模式,父类编写算法结构代码,子类实现逻辑细节
例:
public class Test { 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) { Test test = new Test(){ @Override protected void wrapPrint(String message) { System.out.println("自定义逻辑1:"+message); } }; test.print("你好1!"); Test test2 = new Test(){ @Override protected void wrapPrint(String message) { System.out.println("自定义逻辑2:"+message); } }; test2.print("你好2!"); } }
结果:
################
自定义逻辑1&