熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Spring中的Template和Callback模式

2013-11-23 20:30:18  來源: Java開源技術 

  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就具有很好的靈活性


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28585.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.