模板形式1

模板模式1

       模板方法模式很常用,其目的是在一个方法中定义一个算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。

 

概念:定义一个算法的骨架,而将一些实现步骤延迟到子类中。

    把不变的行为搬到超类,去除子类中重复的代码来体现他的优势。

 一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。

 

 

这种标准的模板模式是:父类是一个抽象类,实现了大部分固定的方法,然后有某个核心算法因为当时不好确定,会留给他的子类去实现。

具体步骤请看代码:

 

package com.Template;

public abstract class Car {

	
	public abstract void drive(String location);
	
	public void addGas(){
		System.out.println("去加油站加油");
	} 
	public void stop(){
		System.out.println("发动机熄火");
	} 
	
	public void toHangzhou(){
		addGas();
		this.drive("杭州");//核心方法,留给子类去实现
		stop();
	}
}

 

 

 

package com.Template;

public class CarImpl extends Car{

	public CarImpl(){
		
	}
	
	@Override
	public void drive(String location) {
		 System.out.print("开车去"+location);
		
	}

}

 

package com.Template;

public class Test {
	public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException{
		Car car = new CarImpl();
		car.toHangzhou();
 	 
	}
}