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

@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/社交网络/博客)平台,“下一代的社区系统,为未来而构建”。

    479 引用 • 4402 回帖 • 651 关注
  • Latke

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

    66 引用 • 504 回帖 • 527 关注
  • Q&A

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

    1663 引用 • 10976 回帖 • 580 关注
4 回帖
请输入回帖内容...
  • cbam

    看完了,但是还是并不怎么理解比定义具体类型好在哪里。可能我工作中中毒太深,,,😂

    1 回复
  • 88250

    其实也没啥好处,类型安全更重要一些,我这是在探索野路子,小项目凑合能用就行。

  • Eddie

    sym 这种复杂度的用不上 DDD 啊。