簡體   English   中英

MVVM 在多個存儲庫中重復代碼

[英]MVVM duplicated code in multiple Repositories

我有多個存儲庫,需要一些憑據才能使用外部服務。 這些憑據存儲在我的應用程序的共享首選項中,我成功地將它加載到每個存儲庫中。

指定在 SOAP 標頭請求中使用的那些憑據,它們由用戶提供。

使用當前的解決方案,我將這些憑據加載到活動中,然后通過視圖模型中的方法傳遞到存儲庫。 這種方法會生成大量重復的代碼,因為對於我需要這些憑據的每個活動,我都會重復整個過程。

有沒有更好的解決方案可以遵循 MVVM 最佳實踐並避免重復代碼?

你能提供更多的上下文嗎?

在我看來,如果不了解有關您的應用程序的更多信息,就沒有通用的答案。 這些存儲庫是否使用相同的服務(例如網絡服務?)。 如果是這樣,您可以將它們添加為自定義攔截器。

您可以將它們注入存儲庫后面的抽象層中。

為什么將憑據存儲在共享首選項中? 它們是靜態的(比如你從 api 獲得的網絡 api 密鑰)? 如果是這樣,您可以將它們放在例如 gradle.properties 中並將它們保存為 BuildConfig 字段

為了避免冗余代碼,您可以做的一件事是在實用程序類中編寫該代碼並在您的存儲庫中使用它。 希望能幫助到你! :)

您可以編寫一個 POJO 類來保存憑據。 在您的 Main 活動中,使用憑證創建一個對象,然后根據需要在整個應用程序中發送該對象。

暫無
暫無

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

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