面向对象(Java)
模板方式(将会写的很白痴,很详细)
1.模板方法就是要将不同流程的公共流程抽出来,比如:下载有很多种渠道,有ftp的方式,http的方式,webservice 的方式,而在我的项目中需要用到多种渠道的数据,如果不同下载渠道模块由不同人处理,不同人写代码的风格又是不一样的,这样不容易后期的维护,所以要规范不同下载渠道的流程。我们简化一点,首先,下载的过程是固定的,1.验证数据,以方法a命名,2.下载数据,以方法b 命名,3.更新控制表,以方法c命名,不同的渠道实现的方法不一样,所以a(),b(),c(),以抽象的作为关键字,这样,就可以实现一个规范的模板类了,3个步骤命名为方法exc(),exc方法不能被子类修改,所以用final 修饰,类以Download.java 命名。如下
class Download(){
public final void exc(){
//1.验证数据
a();
//2.下载数据
b();
//3更新控制表
c();
}
public void abstract a();
public void abstract b();
public void abstract c();
}
然后不用下载渠道要实现这个模板方法,实现3个抽象方法,这样至少不同人实现的代码流程上大致是一样的。以http下载为例
public class httpDownload extends Download
{
@
a(){
//1.取http的参数
//2.验证http 的参数
}
b(){
//1实现连接
//下载数据
}
c()
{
//1更新控制表
}
}
然后该用http下载的用http下载,改用ftp下载的用ftp下载。
2.好处是,统一了运行的步骤,项目看起来比较明了,后期接手项目的你也可以容易上手。
3.关键点:关键是模板类中的关键方法中的步骤是固定的,对于具体的方法用抽象实现。