我们知道从 Netty
中解码消息后,会构建我们业务的领域对象,可能是不同接口的 Request
比如
interface MyService {
ResultDTO search(SearchReqeust reqeust);
ResultDTO recommend(RecommendReqeust reqeust);
ResultDTO suggest(SuggestReqeust reqeust);
}
但是我们 symphony
项目里,是所有服务接口统一的入参,用 JSONObject
来承载参数,底层是 map
封装,参数扩展性强。通过一些领域类里常量来获取 value
public final class Article {
/**
* Article.
*/
public static final String ARTICLE = "article";
/**
* Articles.
*/
public static final String ARTICLES = "articles";
/**
* Key of article title.
*/
public static final String ARTICLE_TITLE = "articleTitle";
业务上这样使用:
article.put(Article.ARTICLE_T_AUTHOR_NAME, author.optString(User.USER_NAME));
article.put(Article.ARTICLE_T_AUTHOR_URL, author.optString(User.USER_URL));
article.put(Article.ARTICLE_T_AUTHOR_INTRO, author.optString(UserExt.USER_INTRO));
那么和定义带有具体属性的领域对象有啥优缺点考量么?
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于