模板模式
模板模式就是将公用的常用代码封装成一个模板,只需要实现不同的业务需求的代码,然后和模板组合在一起,得到完整的逻辑。
常用的两种实现方式:继承和接口回调
继承方式
创建一个模板类,将模板代码封装
public abstract class Templet {
public void doTemplet() {
System.out.println("固定代码片段");
//业务逻辑代码
doSomething();
System.out.println("固定代码片段");
}
public abstract void doSomething();
}
需要使用模板的类只需要继承这个模板类,并实现抽象方法doSomething()
那么在调用doTemplet()
方法时,调用的业务逻辑代码就是子类实现的doSomething()
方法了,这样就可以实现不同的逻辑使用同一段代码了
子类实现
public class BuyShoping extends Templet {
@Override
public void doSomething() {
System.out.println("买羽绒服");
}
}
调用
public class TestBuyShoping {
public static void main(String[] args) {
BuyShoping buy = new BuyShoping();
buy.doTemplet();
}
}
接口回调方式
定义一个通用接口
public interface Callback<V, T> {
public V doSomething(T t);
}
模板测试类
public class TestCallback {
public static void main(String[] args) {
useTemplet("业务逻辑", new Callback<String, String>(){
public String doSomething(String t) {
return t;
}
});
}
public static void useTemplet(String str, Callback<String, String> callback) {
System.out.println("固定代码");
String result = callback.doSomething(str);
System.out.println(result);
System.out.println("固定代码");
}
}
结果