设计模式六(模板方法模式)

是一种行为型的设计模式,将一些步骤的实现延迟到子类有些步骤是固定的可以抽取父类,在父类中实现各个步骤,并且在父类中定义一个流程控制方法,将某个容易发生变化的步骤定义为抽象方法,针对不同的子类实现不同的方法,最终子类调用父类的流程控制方法即可

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 void score(){
          System.out.println("评分");
      }

    //办理具体业务--抽象方法,由具体子类实现
    public abstract void business();
}
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();
    }
}

总结:模板⽅法模式将算法的不变部分被封装在模板⽅法中,⽽可变部分算法由⼦类继承实现,这样做可以很好的提⾼代 码的复⽤性,但是当算法的框架发⽣变化时,可能需要修改模板类,这也会影响到所有的⼦类

相关推荐
帧栈几秒前
我的创作纪念日
java
bug攻城狮35 分钟前
Spring Boot Banner
java·spring boot·后端
黑马源码库miui520861 小时前
JAVA同城打车小程序APP打车顺风车滴滴车跑腿源码微信小程序打车源码
java·微信·微信小程序·小程序·uni-app
MadPrinter1 小时前
SpringBoot学习日记 Day11:博客系统核心功能深度开发
java·spring boot·后端·学习·spring·mybatis
淦出一番成就1 小时前
Java反序列化接收多种格式日期-JsonDeserialize
java·后端
Java中文社群1 小时前
Hutool被卖半年多了,现状是逆袭还是沉寂?
java·后端
爱吃苹果的日记本2 小时前
开学第一课
java
渣哥2 小时前
Java 集合框架详解:常见集合类及分类方式
java
yinke小琪3 小时前
消息队列如何保证消息顺序性?从原理到代码手把手教你
java·后端·面试
考虑考虑3 小时前
Java实现墨水屏点阵图
java·后端·java ee