我是新手进行改造,想知道什么是最好的做法.
这是我在网上找到的一些抽象代码:
public class RestClient
{
private static final String BASE_URL = "your base url";
private ApiService apiService;
public RestClient()
{
Gson gson = new GsonBuilder()
.registerTypeAdapterFactory(new ItemTypeAdapterFactory()) // This is the important line ;)
.setDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'")
.create();
RestAdapter restAdapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(BASE_URL)
.setConverter(new GsonConverter(gson))
.setRequestInterceptor(new SessionRequestInterceptor())
.build();
apiService = restAdapter.create(ApiService.class);
}
public ApiService getApiService()
{
return apiService;
}
}
Run Code Online (Sandbox Code Playgroud)
并且假设我想用这个函数发出api请求/调用
RestClient restClient = new RestClient();
restClient.getApiService().getPosts();
Run Code Online (Sandbox Code Playgroud)
我的问题是我应该创建一个新的restClient对象,或者这应该是一个单例,或者ApiService应该是一个单例.
什么是最佳做法?请记住,我不想使用依赖注入,我只想了解如何最好地使用改造.
你们有人会怎么打电话?
你应该RestClient以任何你喜欢的方式(enum,standard getInstance()或者甚至double check)制作单身.
让他们为单身会提高性能,因为你不会每个珍贵的对象,如创建时间Gson,RestAdapter和ApiService.
编辑: Retrofit可以同时处理的最大请求取决于HttpClient配置.
使用时,OkHttp默认值为64(定义中Dispatcher).
但是它可以通过操作setMaxRequests(),请记住不要产生太多线程(它可能导致OutOfMemory).
您拥有的代码很好。您可以将restClient保持为单例,然后restClient.getApiService().getPosts();只要想再次获取帖子就打电话(不要每次都创建一个新的restClient)。
| 归档时间: |
|
| 查看次数: |
7299 次 |
| 最近记录: |