簡體   English   中英

Android靜態方法與對象創建

[英]Android static method vs object creation

我的Android應用程序有問題。 我目前有一個CatDownloadService ,它假設在后台執行2件事:

  1. 從服務器以JSON格式下載cat的信息(id,名稱,imageid等)。
  2. 將JSON解析為Cat對象
  3. 通過CatDatabaseAccessObject將Cat對象插入數據庫中
  4. 下載貓的圖片
  5. 將圖像保存到外部存儲器。

我似乎無法在實現此目標的各種方式之間做出決定。 有人可以指出我正確的方向嗎? 我對每種方法的了解都在()中。

解析JSON

  1. CatDownloadService中的方法(因為僅在此類中需要我的JSON解析)

     parseCatJSON(jsonString); 
  2. CatJSONParser.java中的方法(更簡潔,因為JSON解析的邏輯本身在類中)

     CatJSONParser catJsonParser = new CatJSONParser(); catJsonParser.parseCatJSON(jsonString); 
  3. CatJSONParser.java中的靜態方法(與2相同。不需要創建對象)

     CatJSONParser.parseCatJSON(jsonString); 

通過DatabaseAccessObject添加到數據庫

  1. CatDatabaseAccessObject.java中的方法(使用DBHelper的每個上下文都不同)

     CatDatabaseAccessObject catDAO = new CatDatabaseAccessObject(this); catDAO.addCat(cat); 
  2. CatDatabaseAccessObject.java中的靜態方法(確保與數據庫只有1個連接)

     CatDatabaseAccessObject.addCat(cat); 

將Cat圖片保存到外部存儲

  1. CatStorageManager.java中的方法

     CatStorageManager catStorageManager = new CatStorageManager(); catStorageManager.writeCatImage(catInputStream); 
  2. CatStorageManager.java中的靜態方法

     CatStorageManager.writeCatImage(catInputStream); 

我真的迷路了。

我通過兩種方式對靜態方法進行分類-

  • 如果他們保留一些誤導和不必要的參考文獻,將對其有害。

     public static InputStream is = null; public static void harfulStaticMethod(InputStream is) { BatteryManagerC.is = is; /* Read Content */ /* Leave open or is have used at multiple places */ } 
  • 非有害僅用於訪問方法變量

     public static void unharmFullStaticMethod(int a, int b) { int c = a + b; Log.e("Some Is=", String.valueOf(c)); } 

由於您的問題涉及面很廣,並引出許多要點。 所以它只反映一個視圖。 希望對你有幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM