背景:開發自動更新功能,APK版本自動更新功能集成到SDK中方便給其他應用集成,爲了方便,將校驗、接口請求封裝到自定義的工具類中,並採用了單例模式,最初的設想是避免多次調用,導致使用重複,後續與iOS review的過程中發現這裏設計的極爲不合理
問題:
- 代碼在整個生命週期只執行一次,沒必要用單例控制
- 單例使用了靜態對象,在使用過程中會一直佔用內存,雖然佔據很小,但依然是內存泄漏
- 這裏的控制職責被錯誤的賦予到了工具類,他本身是不應該關心業務的,應該只專注於自身功能實現即可
單例模式的使用益處
- 解決了重複代碼、重複邏輯的代碼冗餘
- 規定了全局唯一的功能、屬性等
在這裏的使用真的是 爲了初步認爲的可能錯誤進行設計了,蠢!