gpt4 book ai didi

android - 我应该对单例使用改造吗?

转载 作者:可可西里 更新时间:2023-11-01 19:05:48 25 4
gpt4 key购买 nike

我是改造新手,想知道什么是最佳实践。

这是我在网上找到的一些抽象代码:

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;
}
}

假设我想用这个函数发出一个 api 请求/调用

RestClient restClient = new RestClient();
restClient.getApiService().getPosts();

我的问题是我应该创建一个新的 restClient 对象还是它应该是一个单例,或者 ApiService 应该是一个单例。

最佳做法是什么?请记住,我不想使用依赖注入(inject),我只是想了解如何最好地使用改造。

你们中的一些人会如何调用这个电话?

最佳答案

您应该以您喜欢的任何方式(枚举、标准 getInstance() 或什至 双重检查)将 RestClient 设置为单例。

将它们保持为单例会提高性能,因为您不会每次都创建昂贵的对象,如 GsonRestAdapterApiService

编辑:Retrofit 可以同时处理的最大请求数取决于 HttpClient 配置。

OkHttp 一起使用时,默认值为 64(在 Dispatcher 中定义)。

但是它可以通过 setMaxRequests() 进行操作, 请记住不要生成太多线程(它可能导致内存不足)。

关于android - 我应该对单例使用改造吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36628399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com