【渐进】浅尝DDD,对"试卷"建模
2010-09-30 21:05:10 来源:WEB开发网核心提示: 领域逻辑的表达不要受UML图的约束,否则可能是问题所在,【渐进】浅尝DDD,对"试卷"建模(2),适当的描述就可以很好的解决这个问题, 关于DDD和UML相关的具体介绍可参考:《UML和模式应用》(第三版)《.NET.Domain.Driven.Design.with.C.S
领域逻辑的表达不要受UML图的约束,否则可能是问题所在,适当的描述就可以很好的解决这个问题。
关于DDD和UML相关的具体介绍可参考:
《UML和模式应用》(第三版)
《.NET.Domain.Driven.Design.with.C.Sharp》
从领域问题,场景中分析找出概念类,确定一组概念类则是OO分析的核心。以下就“试卷”这个领域来进行DDD的分析和设计尝试。
场景描述
试卷由多个大题组成,每个大题下有多道试题,试卷还可以有多个分卷,如分卷I,分卷II,可以统计大题下的试题信息…
概念类提取
从上述描述提取出概念类:试卷,分卷,大题,试题。
UML概念类表达
几个设计方案
方案一:按级联关系相应设计试卷结构,形成试卷->分卷->大题->试题的结构。
方案二:将试卷的分卷,大题,试题都认为是试卷分块,试卷成为一个试卷分块的线性列表。
方案三:将试卷的分卷,大题等归属于结构相关信息,对试卷抽象出试题列表和试卷结构,
方案比较(略)
方案一完全依赖场景描述设计层级结构,固化了试卷结构,方案二,三的设计思路都是将试题列表设计为线性,屏蔽业务和呈现需求的差异。
最终方案
试卷(Paper)主要由试卷结构(PaperStruct)和试题列表(PaperQuestionList)构成,试卷结构包含试卷分块列表,试卷分块用于表示试卷中的大题概念。
试题列表是为此场景而特化设计的集合,仅仅是对试卷分块(PaperPart)中试题列表的逻辑映射,仅公开部分集合相关操作。
更多精彩
赞助商链接