模板方法
模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的
重复代码全部在父类里面,不同业务的,抽取给子类进行实现。抽取过程—抽象方法。
某些特定步骤。
核心:处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不能确定。因此,我们采用工厂方法模式,将这个节点的代码实现转移给
子类完成。即:处理步骤在父类中定义好,具体的实现延迟到子类中定义。
说白了,就是将一些相同操作的代码,封装成一个算法的骨架。核心的部分留在子类中操作,在父类中只把那些骨架做好。
事例代码
package mayi02.may02.template;
//短信模板
public abstract class MsgTemplate {
public void sendMsg(){
//1.开始日志报文
addHeadLog();
//2.调用具体不同的运营商发送
htppRequest();
//3.结束日志报文
addFootLog();
}
private void addHeadLog() {
System.out.println("调用运营商开始日志");
}
public abstract void htppRequest();
private void addFootLog(){
System.out.println("调用运营商结束日志");
}
}
package mayi02.may02.template;
public class YiDong extends MsgTemplate {
@Override
public void htppRequest() {
System.out.println("http://yidong.com");
}
}
package mayi02.may02.template;
public class LianTong extends MsgTemplate {
@Override
public void htppRequest() {
System.out.println("http://liantong.com");
}
}
package mayi02.may02.template;
public class Client {
public static void main(String[] args) {
MsgTemplate yiDong = new YiDong();
yiDong.sendMsg();
}
}
运行结果:
调用运营商开始日志
http://yidong.com
调用运营商结束日志