定义和简单实例
模板方法使子类可以在不改变一个算法结构的情况下,重新定义算法中某些特定步骤的实现。下面是简单示例:
public abstract class AbstractClass {
    public final void templateMethod() {
        primitiveOperation1();
        primitiveOperation2();
    }
    public abstract void primitiveOperation1();
    public abstract void primitiveOperation2();
}
public class ConcreteClass extends AbstractClass {
    public void primitiveOperation1() {
        System.out.println("Concrete implementation of operation1");
    }
    public void primitiveOperation2() {
        System.out.println("Concrete implementation of operation2");
    }
}实现步骤的详细解析
模板方法包含以下几个步骤:
1、建立抽象基类,定义模板方法。模板方法定义了算法的步骤,并按照顺序来执行。模板方法通常被声明为final,以防止子类改变模板方法中的算法框架。
public abstract class AbstractClass {
    // The "template method"
    public final void templateMethod() {
        primitiveOperation1();
        primitiveOperation2();
    }
    ...
}2、模板方法调用抽象操作以及其他方法。除了抽象操作,模板方法还可以调用(钩子)其他方法。如果子类不能提供钩子方法的实现,它的默认行为就是什么也不做。
public abstract class AbstractClass {
    ...
    // A "hook" method
    protected void hookMethod() {
        // Empty by default
    }
}3、在子类中实现抽象操作。子类为抽象操作提供具体实现,这样每个子类定义了如何执行算法的一部分。
public class ConcreteClass extends AbstractClass {
    public void primitiveOperation1() {
        ...
    }
    public void primitiveOperation2() {
        ...
    }
}
 
				 沃梦达教程
				
			本文标题为:Java模板方法讲解
				
        
 
            
        
             猜你喜欢
        
	     - ExecutorService Callable Future多线程返回结果原理解析 2023-06-01
 - Java中的日期时间处理及格式化处理 2023-04-18
 - JSP 制作验证码的实例详解 2023-07-30
 - SpringBoot使用thymeleaf实现一个前端表格方法详解 2023-06-06
 - 基于Java Agent的premain方式实现方法耗时监控问题 2023-06-17
 - JSP页面间传值问题实例简析 2023-08-03
 - 深入了解Spring的事务传播机制 2023-06-02
 - Springboot整合minio实现文件服务的教程详解 2022-12-03
 - Java实现顺序表的操作详解 2023-05-19
 - Spring Security权限想要细化到按钮实现示例 2023-03-07
 
						
						
						
						
						
				
				
				
				