我应该缓存由 Retrofit 生成的对象还是建议动态创建?
我开始从旧的网络框架逐步迁移到 Retrofit,它从一个非常基本的逻辑开始,用于缓存 Retrofit 创建的实例。这是由于我们的架构将在不同的活动/片段中使用不同的端点,当用户访问应用程序的不同部分时,将调用此方法:
static public <T> T getApi(Class<T> apiInterface) {
validateInitialization("getApi()");
if (!mApis.containsKey(apiInterface.getSimpleName())) {
mApis.put(apiInterface.getSimpleName(), retrofit().create(apiInterface));
}
return (T) mApis.get(apiInterface.getSimpleName());
}
Run Code Online (Sandbox Code Playgroud)
然而,随着我们继续迁移我们的模式以使用 Retrofit,这个地图的大小正在增加(目前可以创建大约 20 个不同的接口/api),有时包含不再使用的实例。