将改造服务声明划分为多个接口
我正在创建一个链接到API的应用程序,其中包含大约265种方法。我非常想将这些API的声明分解为多个文件,以保持它们的组织和可访问性。但是,改造明确禁止通过扩展组合接口。
java.lang.IllegalArgumentException: Interface definitions must not extend other interfaces.
我一直试图宣布如下。
public interface ApiService extends ProfileService, AccountService {
// Empty interface, methods divided into other services
}
public interface ProfileService {
@GET("/api/v1/protected/profile")
public void getProfile(Callback<Profile> callback);
...
}
public interface AccountService {
@GET("/api/v1/protected/account")
public void getAccount(Callback<Account> callback);
...
}
在拉取请求上有关于此问题的讨论。库的作者已经决定,像这样的扩展接口不符合库的精神。https://github.com/square/retrofit/pull/676
Jake Wharton(作者)说:“改造有利于构图。在回应“你真的有一个带有大量代理的适配器吗?”,“是的。它们由 protos 中的服务声明生成。每个服务一个接口。
我一直在阅读关于构图与继承的文章,却没有掌握如何实现分解宣言的目标。
如何将接口声明划分?是否有我缺少的最佳实践?
谢谢。