Java设计模式学习-模板方法模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_40646143/article/details/85410317

模式方法模式介绍:

  • 模板方法模式是编程中经常用到模式 。它定义了一个操作中的算法骨架,将将某些步骤延迟到子类中实现。这样,新的子类可以在不改变一个算法结构的前提下重新定义定义该算法的某些特定的步骤。
  • 核心:
  • 处理某个流程的代码已经都具备, 但是其中某个节点的代码暂时不能确定。因此,我们采用工厂方法模式,将这个节点的代码实现转移给子类完成。即 : 处理步骤父类中定义好 , 具体实现延迟到子类中定义。

1),创建模板类

/**模拟用户到银行排队办理业务
 * @author 晓电脑
 */
public abstract class TemplateMethod {

    public void formAline(){
        System.out.println("排队中.0..");
    }


    public abstract void handle();

    public void score(){
        System.out.println("对客户人员进行评分");
    }

    public void process(){

        formAline();

        this.handle();

        score();
    }
}

2),创建客户端

/**测试模板方法模式
 * @author 晓电脑
 * 多态
 */
public class Client {
    public static void main (String[] args) {

        TemplateMethod templateMethod = new TemplateMethod() {
            @Override
            public void handle() {
                System.out.println("存钱");
            }
        };
        templateMethod.process();

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

        TemplateMethod method = new TemplateMethod() {
            @Override
            public void handle() {
                System.out.println("取款业务");
            }
        };
        method.process();
    }
}

运行结果如下

什么时候用到模板方法模式

  • 实现一个算法时, 整体步骤固定 。但是,某些部分易变。易变部分可以抽象可以抽象出来,供子类实现。

开发中常见的场景:

  • 非常频繁。各个框架,类库中都有他的影子。比如常见的有:
  • 数据库访问的封装
  • junit单元测试
  • service中关于doGet.doPost方法调用
  • Hibernate中模板程序
  • Spring中JDBCTemplate,HibernateTemplate等

猜你喜欢

转载自blog.csdn.net/qq_40646143/article/details/85410317