模板方法模式
在开发的过程中,有可能会遇到多个业务中,开头或结尾代码的逻辑是完全一样,只有中间某一部分的代码逻辑是独立不一样的情况,如果正常写法可能会出现代码重复,代码复用差的情况;
public class Student {
public void myDay(){
System.out.println("起床洗漱!!");
System.out.println("开始学习!!");
System.out.println("洗漱睡觉!!");
}
}
public class Programmer{
public void myDay(){
System.out.println("起床洗漱!!");
System.out.println("开始敲代码!!");
System.out.println("洗漱睡觉!!");
}
}
这种情况,就出现代码重复的问题了。
使用模板模式
这种情况就可以用到模板模式,先写一个方法模板类,模板中都是共用的逻辑,然后定义个抽象方法用于写各自特定的业务逻辑,从而子类重写抽象方法执行各自特定的业务逻辑,则可以优化代码复用;
//定义模板类
public abstract class Template{
protected void myDay() {
System.out.println("起床洗漱!!");
doWork();
System.out.println("洗漱睡觉!!");
}
abstract void doWork();
}
public class Student extends Template{
@Override
void doWork() {
System.out.println("开始学习!!");
}
}
public class Programmer extends Template{
@Override
void doWork() {
System.out.println("开始敲代码!!");
}
}
//那么使用的时候只需要获取到对象并且调用myDay方法则可以
public static void main(String[] args) {
Programmer programmer = new Programmer ();
programmer.myDay();
}
输出的结果是:
起床洗漱!!
开始敲代码!!
洗漱睡觉!!