【渐进】浅尝DDD,对"试卷"建模
2010-09-30 21:05:10 来源:WEB开发网试卷分块主要包含试题索引范围(QuestionIndexRang)和 分块试题列表(QuestionList)的定义以及相关统计属性。
最终方案的优势:即保证了结构和业务的剥离,又使得呈现可以以直观的层级进行。
UML详细设计模型
图片看不清楚?请点击这里查看原图(大图)。
基本代码成型
试卷:
/// <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
}
更多精彩
赞助商链接