中午吃过饭回来闲着没事,忽然想起多线程,打开网页随便看了下,发现多线程的实现实际就是用模板方法、装饰者两种模式设计的。
模板方法模式定义:在一个类中定义一个算法,但将此算法的某些细节留到子类中去实现.换句话说,基类是一个抽象类,那么你就是在使用一种简单形式的摸板模式。
装饰者模式定义:装饰者模式可以动态地给一个对象增加其他职责。就扩展对象功能来说,装饰者模式比生成子类更为灵活。
创建多线程有两种方式,大家耳熟能详的。
1.继承类Thread,调用Thread类的start方法。Thread类中就定义了一个run方法留给子类去实现,而start方法又是调用run方法,典型的模板方法模式。
2.实现runnable接口,实现类把此接口的实现类当做Thread的构造参数来新建Thread类,然后调用start方法开启线程。查看Thread类也是实现的runnable接口,也就是说Thread类是我们自己实现runnable接口类的装饰者,只不过Thread类没有直接调用共同实现的run方法,还是调用的start方法来触发线程启动。也算是两种模式的混合使用。
皮毛而已,天天总结,天天向上。