模板方法模式

在某些程序执行过程中,整体流程是固定的,只是说某一个小过程不同,模板方法模式设计理念就是将这些固定的程序抽取到一个父类中,将那个不同的过程方法定义为抽象方法,交由子类去重写实现。然后父类定义一套固定的流程去调用即可。

像Servlet中请求有doGet和doPost两种,方法中可以有多种请求处理,这是靠我们自己去实现的。但是父类里面有一套自己的执行流程,到service()方法里面会判断是哪种请求方式,然后去调用我们实现好的方法。这种也是模板方法模式。

子类去调用父类的那个固定流程方法,由于多态,所以会去执行子类重写后的小过程方法。

模板方法模式的缺点就是小过程方法的不同实现方式,就相应必须扩展多个子类去重写,但也符合开闭原则。

java 复制代码
//父类
public abstract class AbstractBank {

       //办理业务方法 -- 模板方法
       public void handle(){
               this.offerNumber();

               this.lineup();

               this.business();

               this.score();
       }

       //抽号
       public void offerNumber(){
           System.out.println("抽号");
       }
      //排队
      public void lineup(){
          System.out.println("排队");
      }

      //办理具体业务--抽象方法,由具体子类实现
      public abstract void business();

      //评分
      public void score(){
          System.out.println("评分");
      }
}
java 复制代码
/*
   存钱业务
 */
public class StoreBusiness extends AbstractBank{

    //办理的具体业务
    public void business() {
        System.out.println("我要存钱");
    }
}
java 复制代码
/*
  转账业务类
 */
public class TransferBusiness  extends AbstractBank{

    //转账
    public void business() {
        System.out.println("我要转账");
    }

}
java 复制代码
public class Test {


    public static void main(String[] args) {

        StoreBusiness storeBusiness = new StoreBusiness();
        storeBusiness.handle();

        System.out.println("===================================");

        TransferBusiness transferBusiness = new TransferBusiness();
        transferBusiness.handle();
    }
}
相关推荐
Rsun0455118 小时前
14、Java 模板方法模式从入门到实战
java·python·模板方法模式
Rsun045512 天前
15、Java 观察者模式从入门到实战
java·python·模板方法模式
程序员小寒5 天前
JavaScript设计模式(十):模板方法模式实现与应用
前端·javascript·设计模式·模板方法模式
UrSpecial9 天前
设计模式:模板方法模式
设计模式·模板方法模式
怨言.12 天前
设计模式之模板方法模式
设计模式·模板方法模式
无籽西瓜a16 天前
【西瓜带你学设计模式 | 第十一期 - 模板方法模式】模板方法模式 —— 流程骨架与钩子实现、优缺点与适用场景
java·后端·设计模式·软件工程·模板方法模式
都说名字长不会被发现17 天前
模版方法 + 策略模式在库存增加/扣减场景下的应用
策略模式·模板方法模式·宏命令·策略聚合·库存设计
大数据新鸟20 天前
设计模式详解——模板方法模式
java·tomcat·模板方法模式
sg_knight21 天前
设计模式实战:模板方法模式(Template Method)
python·设计模式·模板方法模式
朱一头zcy23 天前
设计模式入门:最简单的模板方法模式
笔记·设计模式·模板方法模式