- 我所有的網絡相關的任務是在一個單獨的類和 集中。基本上我不想用網絡電話污染我的活動 。
我相信你有保持常數一類,我們可以用它本身。
你可以做什麼,是創建一個類並通過應用程序加載實例化它。您的代碼可能是這個樣子:
public class Constants {
// Your code.
static {
instantiateNetworkHelper();
}
public static NetworkHelper netowrkHelper = null;
private static void instantiateNetworkHelper() {
/* implementation */
}
}
這樣,你只是創建助手類只有一個實例,你可以在你的應用程序的任何地方使用它...
- 設計應是這樣的,如果在將來我想改變我使用了網絡電話(okhttp,改型,異步等) 我的庫不必做很多代碼更改,或者如果有任何代碼更改 他們都必須在一個類中,活動不應該能夠告訴 的區別。我應該只需使用最少的代碼更改即可更改庫文件 。
您可以使用上面的實現,但是這次可以使用抽象的概念。您可以創建一個可以進行網絡調用的抽象類,並且您可以創建抽象方法來獲取網絡協議或任何想要配置/更改的內容。一個例子是這樣的:
public abstract class NetworkHelper {
public void doNetworkCall() {
String protocol = getProtocol();
/* implementation */
}
protected String getProtocol();
}
而且這樣你可以有多個NetworkHandlers,也就是說,每個幫助來處理特定的協議,並通過創建實現或使用現有的可以進行單元測試它們。
來源
2017-02-16 12:26:36
Jay
我實際上做的事情與此類似。 – Ezio