差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
java:basic:close_systemin_of_scanner [2016/11/30 11:43]
tony [Singleton]
java:basic:close_systemin_of_scanner [2016/11/30 11:45]
tony
行 9: 行 9:
   - 使用Singleton樣式,大家都用同一個Global Scanner。   - 使用Singleton樣式,大家都用同一個Global Scanner。
 第一個做法對於寫code有潔癖的人來說,不會去使用的。而第二和第三個做法,以單元測試方便性來說與,我比較偏愛Decorator方式;使用Singleton的作法,還要考慮到底是誰負責close。如果大家都說好,你可以透過shutdown hook去close。 第一個做法對於寫code有潔癖的人來說,不會去使用的。而第二和第三個做法,以單元測試方便性來說與,我比較偏愛Decorator方式;使用Singleton的作法,還要考慮到底是誰負責close。如果大家都說好,你可以透過shutdown hook去close。
-==== Decorator ==== +\\ 
-參考apache common io程式碼:​+\\ 
 +分享decorator作法,參考apache common io程式碼:​
 <code java> <code java>
 public class CloseShieldInputStream extends ProxyInputStream { public class CloseShieldInputStream extends ProxyInputStream {
行 40: 行 41:
  // some operations  // some operations
  }  }
-</​code>​ 
-==== Singleton ==== 
-<code java> 
-public class SystemInScanner { 
- private static Scanner mInstance = new Scanner(System.in);​ 
-  
- private SystemInScanner(){ 
-  
- } 
-  
- public static Scanner getScanner(){ 
- return mInstance; 
- } 
-} 
 </​code>​ </​code>​
  
行 61: 行 48:
   * [[http://​stackoverflow.com/​questions/​23621668/​java-closing-scanner-and-resource-leak|java-closing-scanner-and-resource-leak]]   * [[http://​stackoverflow.com/​questions/​23621668/​java-closing-scanner-and-resource-leak|java-closing-scanner-and-resource-leak]]
  
 +=====    ===== 
 +---- 
 +\\ 
 +~~DISQUS~~