对于 symphony 领域对象设计的请教

本贴最后更新于 188 天前,其中的信息可能已经时移世易

@88250

我们知道从 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));

那么和定义带有具体属性的领域对象有啥优缺点考量么?

  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台,“下一代的社区系统,为未来而构建”。

    489 引用 • 4457 回帖 • 652 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    68 引用 • 521 回帖 • 530 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    1826 引用 • 11832 回帖 • 577 关注

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...