模板模式是多态的典型应用,在现实生活中有规律的事情都可以总结为模板。写小说的时候,也可以碰到,下面以四大名著中的《西游记》为例,描述一下模板模式的实现,首先建一个抽象类,描述一下西游记的主要情节。
package com.ws.basic;
public abstract class testtemple {
public void start(){
System.out.println("大师兄,师傅被妖怪抓走了!");
}
public abstract void help(); //拯救师傅
public void stop(){
System.out.println("唐僧师徒继续取经!");
}
public final void process(){
this.start();
this.help();
this.stop();
}
}
调用测试:
package com.ws.basic;
public class clientemple {
public static void main(String[] args) {
//匿名内部类
testtemple bt1 = new testtemple(){
@Override
public void help() {
System.out.println("悟空大战红孩儿,在观音的帮助下,救回师傅!");
}
};
bt1.process();
testtemple bt2 = new testtemple(){
@Override
public void help() {
System.out.println("悟空大战多目怪,在昴日星官的帮助下,救回师傅!");
}
};
bt2.process();
}
}
返回结果:
大师兄,师傅被妖怪抓走了!
悟空大战红孩儿,在观音的帮助下,救回师傅!
唐僧师徒继续取经!
大师兄,师傅被妖怪抓走了!
悟空大战多目怪,在昴日星官的帮助下,救回师傅!
唐僧师徒继续取经!
悟空每次找不同的人帮忙,随时创建一个新类,多调几回,西游记就写完了,纯属搞笑。
模板模式也称钩子模式(hook),就是动态加载,是多态的一种应用。