模板方法设计模式
1、定义一个抽象类。
2、在里面定义2个方法:
第一个是模板方法:把相同代码放里面去。
第二个是抽象方法:具体实现交给子类完成。
3、模板方法设计模式解决了方法中存在重复代码的问题。
使用final关键字修饰模板方法的原因
1、模板方法是给对象直接使用的,不能被子类重写。
2、一旦子类重写了模板方法,模板方法就失效了。
示例代码:
package template;
public class Cxk extends Singer{
public void doSing(){
System.out.println("唱歌:鸡你太美");
}
}
package template;
public class Demo {
public static void main(String[] args) {
Singer s1 = new Cxk();
s1.sing();
System.out.println("----------------------------");
Singer s2 = new Hcy();
s2.sing();
}
}
package template;
public class Hcy extends Singer{
@Override
public void doSing() {
System.out.println("啊啊啊啊啊");
}
}
把相同的代码都放到Singer类中:
package template;
public abstract class Singer {
public final void sing(){
System.out.println("先彩排");
System.out.println("准备上台表演");
doSing();
System.out.println("表演结束");
}
public abstract void doSing();
}