• 基于Spring,struts,hibernate的JYazd仿yazd及jivejdon


    声明:出于学习的目的.本文大部分复制于jivejdo forumn的开发文档,修改的内容是技术实现,以及部分设计上的修改.

    1. 分析设计

    用例图:

    角色设计:Anonymous普通用户;注册用户User;管理者Admin;

    普通用户用例功能:

    浏览所有论坛;

    浏览所有帖子;

    浏览其他用户信息;

    建模:

    从用例图中可以发现,模型有Account(用户),Forum(论坛),ForumMessage(帖子). 论坛和帖子之间其实也存在这样一个集合概念:FourmThread,如下:

    ForumThread相当于主题Topic; 但Topic主要内容放入rootMessage中,可以说相当于所有rootMessage的主题提要,包括回复rootMessage的最后的一个回帖,包括rootMessage在内的所有帖子数等,主要服务于显示一个论坛中所有rootMessage集合。

    ForumThread和Forum之间是N:1关系ForumMessage相当于帖子;ForumMessage之间有一个父子关系,表示帖子之间回帖关系;ForumMessage和ForumThread之间是N:1关系,和Forum之间也是N:1关系。

    领域模型图如下:

    Evans DDD在领域对象的生命周期中对不变性(invariant)进行了定义,指无论何时数据发生变化,都必须满足所有对象一致变化的规则。

    围绕ForumMessage,其组成部分Fourm ForumThread Account都是其核心部分,就像汽车由发动机 车身 轮胎组成一样,缺一不可。特别是ForumThread和ForumMessage,更是这种不变性的高度统一,ForumThread实则是虚的,它里面实体就是ForumMessage,两者是高度一致的。

    DDD指出;聚合内部的不变量必须在每次事务完成时满足。这可有仓储来实现。

    当然,还有一些依赖关系只能在某些特定的时刻,通过事件处理、批处理和其他更新机制来实现,比如上图中state和tag 以及property。

     

     

     

     

     

  • 相关阅读:
    C++第7周任务3输出星号图详解示例
    C++第7周任务3输出星号图全解
    C02程序设计基础提高班(C++)第7周上机任务指针
    毕业生反馈(三)
    C++程序设计第七周上机实践项目
    C03Java同步实践加强班第7周上机任务
    写给菜鸟:发CSDN博文常见问题处理
    android项目 添加
    编译某一个ko模块make modules SUBDIRS=drivers/xxx/
    修改其他输入法为android 默认输入法
  • 原文地址:https://www.cnblogs.com/dycg/p/1683965.html
Copyright © 2020-2023  润新知