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

- public class StoreBusiness extends AbstractBank{
-
- //办理的具体业务
- public void business() {
- System.out.println("我要存钱");
- }
- }
- public class TransferBusiness extends AbstractBank{
-
- //转账
- public void business() {
- System.out.println("我要转账");
- }
-
- }
- public class Test {
-
-
- public static void main(String[] args) {
-
- StoreBusiness storeBusiness = new StoreBusiness();
- storeBusiness.handle();
-
- System.out.println("===================================");
-
- TransferBusiness transferBusiness = new TransferBusiness();
- transferBusiness.handle();
- }
- }
总结:模板⽅法模式将算法的不变部分被封装在模板⽅法中,⽽可变部分算法由⼦类继承实现,这样做可以很好的提⾼代 码的复⽤性,但是当算法的框架发⽣变化时,可能需要修改模板类,这也会影响到所有的⼦类
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。