本文共 1047 字,大约阅读时间需要 3 分钟。
一般来说,定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。
通俗点的理解就是 :完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成。
直接上代码吧,一看就很清晰。
模板方法的父类
package com.caojiulu;import java.util.Date;/** * @author caojiulu *模板方法的父类 */public abstract class SendCustom { public abstract void to(); public abstract void from(); public abstract void content(); public void date() { System.out.println(new Date()); } public abstract void send(); //框架方法-模板方法 public void sendMessage() { to(); from(); content(); date(); send(); }}
模板方法的实现类
package com.caojiulu;/** * @author caojiulu *模板方法的派生类 */public class SendSms extends SendCustom { @Override public void to() { System.out.println("caojiulu"); } @Override public void from() { System.out.println("sss"); } @Override public void content() { System.out.println("Hello world"); } @Override public void send() { System.out.println("Send sms"); } public static void main(String[] args) { SendCustom sendC = new SendSms(); sendC.sendMessage(); }}
转载地址:http://zayyb.baihongyu.com/