设计模式—模板设计模式
来源:互联网 发布:java爬虫技术视频教程 编辑:程序博客网 时间:2024/05/22 01:48
前面我已经盘点过一个设计模式“单例设计模式”,今天我们再来盘点一个设计模式"模板设计模式",该设计模式就如字面意思一样,模版!那么模版是什么了?
我记的我小时候一到夏天的时候天天都会跑去小商铺买一种雪糕,5毛钱2个,相信大家都应该吃过,该雪糕的做法其实就是将一些糖水放进一个模具里面,然后制冷就做出来了,如果你西瓜味的糖水出来的就是西瓜味的雪糕,这里的模具就是模板,你放什么东西进去就好出什么相符合的东西。
下面我需要完成一个需求,做出一个能计算程序运行时间的功能。
class Test
{
public static void main(String[] args) {
time();
}
public static void time(){
long a =System.currentTimeMillis();//该方法是记录当前时间,需要注意的是该放手返回是以毫秒返回
for (int i =0;i<1000 ;i++ )
{
System.out.println(i);
}
long w =System.currentTimeMillis();//记录程序结束时间
System.out.println("毫秒:"+(w-a));
}
}
上面的写法是完成了计算程序运行的时间,但是这个代码过于死板,子限定了计算for的运行时间,下面我们利用java的继承特性来优化的。
class TimeDemo
{
public void time(){
long a =System.currentTimeMillis();//该方法是记录当前时间,需要注意的是该放手返回是以毫秒返回
for (int i =0;i<1000 ;i++ )
{
System.out.println(i);
}
long w =System.currentTimeMillis();//记录程序结束时间
System.out.println("毫秒:"+(w-a));
}
}
class Accede extends TimeDemo/
{
public void time(){//重写该方法
long a =System.currentTimeMillis();
for (int i =0;i<10 ;i++ )
{
for (int j=0;j<1000 ;j++ )
{
System.out.println(j);
}
}
long w =System.currentTimeMillis();//记录程序结束时间
System.out.println("毫秒:"+(w-a));
}
}
class Test
{
public static void main(String[] args) {
new Accede().time();
}
}
以上这个代码重写了父类的time方法,提高了灵活性,但是又出现一个问题,代码重复性过高,复用性地下,现在我们用模板的方法来看看。
abstract class TimeDemo
{
public void time(){
long a =System.currentTimeMillis();//该方法是记录当前时间,需要注意的是该放手返回是以毫秒返回
override();//如果被继承调用的将会是子类的override();应该改方法被重写了
long w =System.currentTimeMillis();//记录程序结束时间
System.out.println("毫秒:"+(w-a));
}
public abstract void override();
}
class Accede extends TimeDemo
{
public void override(){
for (int i =0;i<5000 ;i++ )
{
System.out.println(i);
}
}
}
class Test
{
public static void main(String[] args) {
new Accede().time();
}
}
如果需要计算其他代码是运行时间我们只需要修改Accede类中的override方法即可,这就是模板设计模式,简单,灵活,该模式的特性个人理解为:一段代码是确定是,确定的代码操作者一部分不确定的代码,那么将这段不确定的代码暴露出去,让其子类重写该段代码即可。
- 设计模式—模板模式
- 设计模式—模板模式
- 设计模式——模板设计模式
- 设计模式—模板设计模式
- 设计模式-模板模式
- 设计模式----模板模式
- 设计模式:模板模式
- 设计模式:模板模式
- 设计模式--模板模式
- 设计模式-模板模式
- 设计模式-模板模式
- 《设计模式》- 模板模式
- 设计模式-模板模式
- 设计模式-模板模式
- 设计模式-模板模式
- 设计模式-模板模式
- 设计模式-----模板模式
- 设计模式-模板模式
- Solr客户端 SolrJ单机 添加查询操作
- python的运用
- Linux 文件目录
- Android程序安装后应用图标不显示的问题
- linux密码破解
- 设计模式—模板设计模式
- Solr4.7从数据库导数据
- PAT 1097 Deduplication on a Linked List (25)
- android /system/vold源码分析(6)
- 动态添加TextView
- 网络通信协议
- c++:角色类
- 你看你看南昌的互联网创业孵化基地众生相-2016年6月江西IDC排行榜与发展报告
- 九度OJ - 1209 - 最小邮票数