模版方法设计模式

模版方法设计模式

第一部分

1、模版方法设计模式

在定义功能时,功能的一部分是确定的,但是有一部分是不确定的,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类完成;

2、模版模式的好处

2.1、提高了代码的扩展性;

2.2、提高了代码的复用性;

3、模版模式应用的简单原则

3.1、抽象父类可以定义需要使用的某些方法,其余留给子类去实现;
3.2、父类提供的方法只是定义了一个通用方法,其实现必须依赖子类的辅助;

4、举例

需求:获取一段程序运行的时间;
原理:获取程序开始和结束时间并相减即可;
获取时间:System类里面有个static long currentTimeMillis()

5、模版模式的代码体现

<span style="font-size:14px;">//类也是抽象类
abstract class GetTime
{
//	为了避免被子类复写,将该方法定义成final
	public final void getTime()//不让子类复写,
	{
//		获取开始时间
		long start = System.currentTimeMillis();
//		由于需要运行的代码是不确定的,那么单独把这边的代码封装一下
//		直接调用就可以了,
		runCode();//这个功能是不确定的功能
//		获取结束时间
		long end = System.currentTimeMillis();
		System.out.println("毫秒::"+(end-start));
	}
//	把这个方法单独提取出来,单独封装一个方法,方便于子类去复写,
//	这段代码不知道是什么,因此必然是抽象的;
	public abstract void runCode();
}
//SubTime继承了GetTime,复写父类里面的方法
class SubTime extends GetTime
{
	public void runCode()
	{
		for(int x=0;x<4000;x++)
		{
			System.out.println(x);
		}
	}
}
class  TemplateDemo
{
	public static void main(String[] args) 
	{
		SubTime gt = new SubTime();//建立子类对象
		gt.getTime();//调用父类方法;
	}
}</span><strong style="font-size:18px;">
</strong>

6、运行的结果

第二部分

我的总结

1、如果父类的方法不想被子复写,那么可以在前面加上final关键字修饰;
2、父类的一部分代码要暴露(public)出去,但是父类中的方法不一定是抽象的;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值