快捷搜索:

Spring中的Template和Callback模式

Spring中的Callback模式与Template模式合用,随处可见。Template method被广泛的应用,像Servlet便是应用这个模式。Template mothod模式虽然能简化很多重复的代码,但这种模式的也有不少限定。Template mothod将一个功能的实现分成许多小的步骤,在父类中定义了这些步骤的顺序,让子类来详细实现每一个小的步骤。这些小的步骤是protected,以防止用户不精确的应用这些小的步骤而孕育发生非常。这样就孕育发生了一个限定,那便是你必要承袭Template然后从新实现详细的小步骤。假如这个Template有许多措施,就像JdbcTemplate,假如你每次承袭这个宏大年夜的类,然后只是重写某个小步骤中来订制你自己的功能,就会显得异常粗笨,更何况数据库操作应用的如斯频繁,难道你每进行一个操作就经由过程承袭订制一个,显然弗成能这么做。

Spring应用Callback模式与之共同,达到了去掉落重复代码的效果,同时增添了很大年夜的机动性,你只必要实现某些CallBack就可轻松订制出Template。

那么什么时刻才是Callback模式与Template模式结合的最佳机会呢。显然假如每个详细的步骤都必要真正去详细实现而不是简单的改变参数或设置某个工具就ok的话,应用Callback很难去订制,由于你可能必要通报多个Callback作为参数,并让用户去实现,是用Java的内部类原先便是一个对照丑陋的语法,更何况参数是多个。这相称于你把每个小步骤封装成为接口,然后分手承袭之然后实现。显然没有达到方便机动的效果,这时刻直接应用Template method模式就比结合Callback要好。而假如用户只必要定制一个措施能就达到用户的要求,或者更简单,只是设置不合的参数,那么应用Callback就具有很好的机动性。

您可能还会对下面的文章感兴趣: