Guice指南-入門認識

梧桐雨—168發表於2008-03-21

  Java企業應用開發社群在連線物件方面花了很大功夫。你的Web應用如何訪問中間層服務?你的服務如何連線到登入使用者和事務管理器?關於這個問題你會發現很多通用的和特定的解決方案。有一些方案依賴於模式,另一些則使用框架。所有這些方案都會不同程度地引入一些難於測試或者程式化程式碼重複的問題。你馬上就會看到,Guice 在這方面是全世界做得最好的:非常容易進行單元測試,最大程度的靈活性和可維護性,以及最少的程式碼重複。

  我們使用一個假想的、簡單的例子來展示 Guice 優於其他一些你可能已經熟悉的經典方法的地方。下面的例子過於簡單,儘管它展示了許多顯而易見的優點,但其實它還遠沒有發揮出 Guice 的全部潛能。我們希望,隨著你的應用開發的深入,Guice 的優越性也會更多地展現出來。

  在這個例子中,一個客戶物件依賴於一個服務介面。該服務介面可以提供任何服務,我們把它稱為Service。

  public interface Service {

  void go();

  }

  對於這個服務介面,我們有一個預設的實現,但客戶物件不應該直接依賴於這個預設實現。如果我們將來打算使用一個不同的服務實現,我們不希望回過頭來修改所有的客戶程式碼。

  public class ServiceImpl implements Service {

  public void go() {

  ...

  }

  }

  我們還有一個可用於單元測試的偽服務物件。

  public class MockService implements Service {

  private boolean gone = false;

  public void go() {

  gone = true;

  }

  public boolean isGone() {

  return gone;

  }

  }

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/13270562/viewspace-214950/,如需轉載,請註明出處,否則將追究法律責任。

相關文章