我现在正在转换一个旧的android应用程序,在该应用程序中,许多开发人员有很多不同的想法,中间从未遇到过。该应用程序中的一种常见模式是为API路由定义一个常量字符串列表。例如:Satin
这些用于通过截击HTTP请求构造API URls,类似Public Static final String HOME_FEED = "/%s/home"
的活动将订阅事件总线并等待发送Json响应对象和响应的Volley Response。码。每个API字符串常量都有一个对应的整数常量响应代码,例如String route = String.format(Requests.HOME_FEED, user.getUserId());
我的建议是避免这两个常量类并将它们耦合在一起,就像这样
Public Static final int HOME_FEED_GET = 0;
哪个方法可以使凌空抽空的路线构造读为public enum Requests {
HOME_FEED (0, "/actions/users/%s/following"),
PROFILE_FEED (0, "/actions/users/%s"),
CLUB_FEED (0, "/actions/clubs/%s"),
LIKE_ITEM (1, "/items/%s/like"),
LIKE_UPDATE (1, "/updates/%s/like"),
LIKE_COLLECTION (1, "/collections/%s/like"),
COMMENTS_ITEM (2, "/items/%s/comments"),
COMMENTS_UPDATE (2, "/comments/%s/update"),
COMMENTS_COLLECTION (2, "/collections/%s/comments");
private final int requestCode;
private final String route;
Requests(int requestCode, String route) {
this.requestCode = requestCode;
this.route = route;
}
public int requestCode() {return requestCode;}
public String route() {return route;}
}
,然后将传递任何订阅的事件总线String url = String.format(Requests.HOME_FEED.route(), user.getUserId())
,这种方法听起来可行还是我只是在这里进行工程设计?