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

    482 引用 • 4426 回帖 • 651 关注
  • Latke

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

    67 引用 • 517 回帖 • 532 关注
  • Q&A

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

    1756 引用 • 11526 回帖 • 581 关注

赞助商 我要投放

欢迎来到这里!

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

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

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

    1 回复
  • 88250

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

  • Eddie

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