我在类ForumService中有一个接口ForumApi。我在这里使用Retrofit和Rxjava。通常对于Retrofit,我们实现了一个接口,但是在下面的代码中,我看到了class内部的接口。有什么特别的原因吗?为什么我们需要在类内声明一个接口?我们这样做有什么优势吗?
public class ForumService {
public interface ForumApi {
@GET("/posts")
public Observable<List<Post>>
getPosts();
@GET("/posts/{id}")
public Observable<Post>
getPost(@Path("id") int postId);
@GET("/comments")
public Observable<List<Comment>>
getComments(@Query("postId") int postId);
@POST("/posts")
public Observable<Post>
postPost(Post post);
}
}
我必须在这里不同意。如果接口'A'旨在被特定类'B'使用,但与网络相关的'A'和'B'包含业务逻辑,那么它们绝对不应该在同一个文件中声明。我甚至会说不在同一个包里。 – Vasiliy
@Vasiliy感谢您进一步采取措施,但我无法想象您描述的用例。一个例子,将不胜感激! – alfasin
我不确定“用例”是什么意思。恕我直言,任何将商业规则和网络相关规则结合起来的类违反单一责任原则,应该重构。优选分成不同的包装。 – Vasiliy