zoukankan      html  css  js  c++  java
  • 基于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。

     

     

     

     

     

  • 相关阅读:
    zt 必看: 原来PCIe技术原理这么简单!
    zt linux:centos 解决SSH连接Linux超时自动断开
    idea总结和未来的想法
    linux一些技巧
    zt如何解决Verilog目前不支持数组型端口定义!
    高速设计学习-干货!高速串行Serdes均衡之FFE
    zt:tcpdump抓包对性能的影响
    zt:TCP 学习
    verdi使用
    IE 浏览器下 button元素自动触发click?
  • 原文地址:https://www.cnblogs.com/dycg/p/1683965.html
Copyright © 2011-2022 走看看