模板模式1_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 模板模式1

模板模式1

 2013/12/12 16:09:18  wangzheng1989  程序员俱乐部  我要评论(0)
  • 摘要:模板方法模式很常用,其目的是在一个方法中定义一个算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。概念:定义一个算法的骨架,而将一些实现步骤延迟到子类中。把不变的行为搬到超类,去除子类中重复的代码来体现他的优势。一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。这种标准的模板模式是:父类是一个抽象类,实现了大部分固定的方法,然后有某个核心算法因为当时不好确定,会留给他的子类去实现。具体步骤请看代码:packagecom
  • 标签:模板 模式

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

?

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

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

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

?

?

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

具体步骤请看代码:

?

class="java">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();
 	 
	}
}

?

发表评论
用户名: 匿名