zoukankan      html  css  js  c++  java
  • Java学习笔记——设计模式之七.模板方法模式

    模板方法模式(TemplateMethod),定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

    结构图:

    代码:

    算法骨架:

     1 package cn.happy.design_pattern._07templatemethod;
     2 
     3 public abstract class AbstractClass {
     4 
     5     public abstract void primitiveOperation1();
     6     public abstract void primitiveOperation2();
     7     public void templateMethod(){
     8         primitiveOperation1();
     9         primitiveOperation2();
    10     }
    11 }

    某类重写算法骨架的某步骤:

     1 package cn.happy.design_pattern._07templatemethod;
     2 
     3 public class ConcreteClassA extends AbstractClass {
     4 
     5     @Override
     6     public void primitiveOperation1() {
     7         System.out.println("具体类A方法1实现");
     8 
     9     }
    10 
    11     @Override
    12     public void primitiveOperation2() {
    13         System.out.println("具体类A方法2实现");
    14 
    15     }
    16 
    17 }
    18 public class ConcreteClassB extends AbstractClass {
    19 
    20     @Override
    21     public void primitiveOperation1() {
    22         System.out.println("具体类B方法1实现");
    23 
    24     }
    25 
    26     @Override
    27     public void primitiveOperation2() {
    28         System.out.println("具体类B方法2实现");
    29 
    30     }
    31 
    32 }

    测试类:

     1 package cn.happy.design_pattern._07templatemethod;
     2 
     3 public class Mmain {
     4 
     5     public static void main(String[] args) {
     6         AbstractClass c = new ConcreteClassA();
     7         c.templateMethod();
     8         c = new ConcreteClassB();
     9         c.templateMethod();
    10 
    11     }
    12 
    13 }
  • 相关阅读:
    Navicat
    Eclipse 代码质量管理插件
    oracle sql 逻辑处理
    view视图 | 索引
    LIKE模糊查询
    启动tomcat报找不到或无法加载主类
    oracle:decode
    oracle:case when then else end
    ssh 公共秘钥
    ip 和数字之间的转换
  • 原文地址:https://www.cnblogs.com/tomasman/p/7044157.html
Copyright © 2011-2022 走看看