作者:Mazin
public void doSomething(){
固定代码片段
业务相关代码
固定代码片段
}
如果这段代码在很多地方要使用,并且固定代码比较多,业务相关代码比较少,且比较集中,那么如果我们每次实现一个业务都写下一个完整的流程,那么就会有很多重复代码,使用模板设计模式可以很好的解决这一问题。
是用继承的方式实现:创建一个模板类,将模板代码封装:
public abstract class Templet {
public void doTemplet(){
System.out.println("固定代码片段");
//业务逻辑代码
doSomething();
System.out.println("固定代码片段");
}
public abstract void doSomething();
}
我们需要使用模板的类只需要继承这个模板类,并实现那个抽象方法,那么在调用doTemplet的时候,调用的业务逻辑代码自然就是我们那个子类中的实现了,这样就能实现不同的逻辑使用同一段代码了。
使用回调的方式实现,首先我们定义一个较为通用的接口:
public interface Callback<V,T> {
public V doSomething(T t);
}
public class Test {
public static void main(String[] args) {
useTemplet("业务逻辑",new Callback<String, String>() {
@Override
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("固定代码");
}
}
这样如果还有其他的代码需要复用模板,那么直接调用useTemplet就可以了。
模板设计模式在框架的设计中使用比较多,例如springmvc的view就是一个典型的模板设计模式。
1.不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事
一个人学习、工作很迷茫?
点击「阅读原文」加入我们的小圈子!