WEB开发网
开发学院软件开发C语言 【渐进】浅尝DDD,对"试卷"建模 阅读

【渐进】浅尝DDD,对"试卷"建模

 2010-09-30 21:05:10 来源:WEB开发网   
核心提示: 试卷分块主要包含试题索引范围(QuestionIndexRang)和 分块试题列表(QuestionList)的定义以及相关统计属性,最终方案的优势:即保证了结构和业务的剥离,【渐进】浅尝DDD,对"试卷"建模(3),又使得呈现可以以直观的层级进行,UML详细设计模型 图片看

试卷分块主要包含试题索引范围(QuestionIndexRang)和 分块试题列表(QuestionList)的定义以及相关统计属性。

最终方案的优势:即保证了结构和业务的剥离,又使得呈现可以以直观的层级进行。

UML详细设计模型

【渐进】浅尝DDD,对"试卷"建模

图片看不清楚?请点击这里查看原图(大图)。

基本代码成型

试卷:

  /// <summary>
  /// 试卷
  /// </summary>
  public class Paper : ICloneable
  {
      private int _paperId;
      /// <summary>
      /// 获取试卷标识
      /// </summary>
      public int PaperId { get { return this._paperId; } }
      /// <summary>
      /// 获取或设置试卷结构 
      /// </summary>
      public PaperStruct PaperStruct { get; set; }
      /// <summary>
      /// 获取试卷分块列表
      /// </summary>
      public PaperPartList PaperPartList
      {
          get { return this.PaperStruct.PaperPartList; }
      }
      /// <summary>
      /// 获取试卷试题列表
      /// </summary>
      public PaperQuestionList QuestionList
      {
          get { return PaperQuestionList.Create(this); }
      }
      /// <summary>
      /// 清理试卷内部结构
      /// </summary>
      public void Clear()
      {
          //重设分块的试题索引
          //重设试题列表索引
      }
 
      #region ICloneable 成员
      /// <summary>
      /// 返回一份当前试卷的副本
      /// 副本将完成可靠的拷贝逻辑
      /// </summary>
      /// <returns></returns>
      public object Clone()
      {
          Paper clone = this.MemberwiseClone() as Paper;
 
          //引用处理
          //...
 
          //标识置0
          clone._paperId = 0;
 
          //拷贝引用
 
          return clone;
      }
      #endregion
 
 
  } 

上一页  1 2 3 4  下一页

Tags:渐进 浅尝 DDD

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接