栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

举例讲解Java设计模式编程中模板方法模式的运用实例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

举例讲解Java设计模式编程中模板方法模式的运用实例

模板方法模式定义为:

在一个方法中定义了一个算法的骨架或者步骤,而将一些步骤延迟到子类中去实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某一些步骤。
模板方法在基类中定义了一个操作的流程顺序,能够保证该步骤按序进行,有一些步骤的具体实现在基类中已经声明,而将一些变化的步骤的具体实现交给了子类去实现,从而就达到了延迟一些步骤到子类中,模板方法一个最大的好处就是能够设定一个业务流程能够按照一定严格的顺序执行,控制了整个算法的执行步骤。
这个方法将算法定义成一组步骤,其中凡是想让子类进行自定义实现的步骤,均定义为抽象方法。抽象基类的特点是,一般将模板方法设置为final,这样防止子类覆盖该算法的步骤,将一些相同的操作或步骤直接在基类中实现,将一些变化的步骤设置为抽象由子类去完成。

Java实现示例
类图:

 
public abstract class baseTemplate { 
   
  public abstract void part1(); 
 
  public abstract void part2(); 
 
  public abstract void part3(); 
 
  //这里为了严格实验结果,使用final不可被重写 
  public final void useTemplateMethod() { 
    part1(); 
    part2(); 
    part3(); 
  } 
} 

 
public class TemplateMethod extends baseTemplate { 
 
  @Override 
  public void part1() { 
    System.out.println("模板方法1"); 
  } 
 
  @Override 
  public void part2() { 
    System.out.println("模板方法2"); 
  } 
 
  @Override 
  public void part3() { 
    System.out.println("模板方法3"); 
  } 
 
} 

 
public class TemplateMethod2 extends baseTemplate { 
 
  @Override 
  public void part1() { 
    System.out.println("模板方法11"); 
  } 
 
  @Override 
  public void part2() { 
    System.out.println("模板方法22"); 
  } 
 
  @Override 
  public void part3() { 
    System.out.println("模板方法33"); 
  } 
   
} 

public class Test { 
  public static void main(String[] args) { 
    baseTemplate tm = new TemplateMethod(); 
    tm.useTemplateMethod(); 
     
    System.out.println(""); 
     
    baseTemplate tm2 = new TemplateMethod2(); 
    tm2.useTemplateMethod(); 
  } 
} 


打印:

模板方法1 
模板方法2 
模板方法3 
 
模板方法11 
模板方法22 
模板方法33 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/150197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号