Python面向对象编程——领域模型
Python面向对象编程——领域模型
领域建模。 从领域模型开始,我们就开始了面向对象的分析和设计过程,可以说,领域模型是完成从需求分析到面向 对象设计的一座桥梁。
领域模型,顾名思义,就是需求所涉及的领域的一个建模,更通俗的讲法是业务模型。 参考百度百科(http://baike.baidu.cn/view/757895.htm),领域模型定义如下:
从这个定义我们可以看出,领域模型有两个主要的作用:
1、发掘重要的业务领域模型。
2、建立业务领域概念之间的关系。
领域建模三字经
领域模型如此重要,很多同学可能会认为领域建模很复杂,需要很高的技巧。然而事实上领域建模非常简 单,简单得有点难以让人相信,领域建模的方法概括一下就是“找名词”! 许多同学看到这个方法后估计都会笑出来:太假了吧,这么简单,找个初中生都会啊,那我们公司那些分析师和设计师还有什么用哦?
分析师和设计师当然有用,后面我们会看到,即使是简单的找名词这样的操作,也涉及到分析和提炼,而 不是简单的摘取出来就可,这种情况下分析师和设计师的经验和技能就能够派上用场了。但领域模型分析 也确实相对简单,即使没有丰富的经验和高超的技巧,至少也能完成一个能用的领域模型。
虽然我们说“找名词”很简单,但一个关键的问题还没有说明:从哪里找? 如果你还记得领域模型是“需求到面向对象的桥梁”,那么你肯定一下子就能想到:从需求模型中找,具 体来说就是从用例中找。
归纳一下域建模的方法就是“从用例中找名词”。 当然,找到名词后,为了能够更加符合面向对象的要求和特点,我们还需要对这些名词进一步完善,这就 是接下来的步骤:加属性,连关系!
最后我们总结出领域建模的三字经方法:找名词、加属性、连关系。
1、找名词
who : 学员、讲师、管理员
用例:
- 管理员创建了 北京 和 上海 两个校区
- 管理员 创建了 Linux Python Go 3个课程
- 管理员 创建了 北京校区的Python 16期, Go开发第一期,和上海校区的Linux 36期班级
- 管理员 创建了 北京校区的学员小晴 ,并将其 分配 在了 班级 python 16期
- 管理员 创建了讲师Alex , 并将其分配 给了 班级 python 16期 和全栈脱产5期
- 讲师 Alex 创建 了一条 python 16期的上课纪录Day6
- 讲师 Alex 为Day6这节课 所有的学员 批了作业,小晴得了A, 李磊得了C-, 严帅得了B
- 学员小晴 在 python 16 的 day6里 提交了作业
- 学员李磊 查看了自己所报的所有课程
- 学员 李磊 在 查看了 自己在 py16期 的成绩列表 ,然后自杀了
- 学员小晴 跟 讲师 Alex 表白了
名词列表:
管理员、校区、课程、班级、上课纪录、作业、成绩、讲师、学员
2、加属性
3、连关系
有了类,也有了属性,接下来自然就是找出它们的关系了。