模板方法”简单理解就是:将关键的业务方法、逻辑或算法封装起来,而把具体的一些容易变化的步骤留给子类来进行具体不同的设置,具体表现就是实现父类的方法。
一般情况下,模板方法的实现由继承来实现。父类为抽象类,封装了 public final 类型的公共方法,此方法即为关键的业务方法、逻辑或算法。具体实现见下面的代码:
package template;
/**
* 模板方法 获得各种动物的腿和手的个数
* @author Administrator
*
*/
public abstract class Template {
/**
* final 不让子类集成 公共的核心方法 获取手和腿个数
*/
public final void showAllThings(){
String hand = getHand();
String leg = getLeg();
System.out.println("i have "+hand+"and"+leg);
}
/*
* 以下2个抽象方法 每个动物的腿和手个数都不一样,所以不同的子类集成父类实现该方法
*/
public abstract String getHand();
public abstract String getLeg();
}
package template;
/**
* 子类 猫 有4条腿 将父类的方法实现
* @author Administrator
*
*/
public class Cat extends Template {
@Override
public String getHand() {
return " 0 hands ";
}
@Override
public String getLeg() {
return " 4 legs";
}
}