ITPUB论坛-中国专业的IT技术社区

 找回密码
 注册
查看: 9402|回复: 27

[FAQ] 关于领域模型

[复制链接]
认证徽章
论坛徽章:
121
白羊座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-28 15:57:35双鱼座
日期:2015-07-08 14:34:16水瓶座
日期:2015-07-08 14:34:16摩羯座
日期:2015-07-08 14:34:16射手座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-08 14:34:16天枰座
日期:2015-07-08 14:34:16处女座
日期:2015-07-08 14:34:16狮子座
日期:2015-07-08 14:34:16
发表于 2011-12-30 09:32 | 显示全部楼层 |阅读模式
本帖最后由 superatao 于 2011-12-30 11:59 编辑

各位,在系统分析与设计过程中,抽取领域模型是非常重要的一步,最近一直比较困惑。
领域模型按理说应该是概念模型,也就是针对客观世界的对象进行抽取建模,但困惑的是,领域模型与后期设计及实现过程中的持久化实体模型是不是一回事,不是一回事的话,那么怎样才能将领域模型转换为持久化的实体类模型?大家讨论一下吧,谢谢。
认证徽章
论坛徽章:
121
白羊座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-28 15:57:35双鱼座
日期:2015-07-08 14:34:16水瓶座
日期:2015-07-08 14:34:16摩羯座
日期:2015-07-08 14:34:16射手座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-08 14:34:16天枰座
日期:2015-07-08 14:34:16处女座
日期:2015-07-08 14:34:16狮子座
日期:2015-07-08 14:34:16
发表于 2011-12-30 09:37 | 显示全部楼层
其实再换个说法的话,也就是分析类和设计类的区别,如何由提取分析类,如何由分析类生成或形成系统的设计类。

使用道具 举报

回复
论坛徽章:
62
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
发表于 2011-12-30 11:46 | 显示全部楼层
>>领域模型与后期设计及实现过程中的持久化实体模型是不是一回事?

不是一回事。

光说 Domain Model,确实很容易混淆。至少有两种领域模型。解释起来有点复杂。


1、业务模型 - 含(业务)领域模型,也叫(业务/领域)概念模型、(业务)实体模型

全是业务中的概念和 Class,对现实世界中人、事、物的抽象,跟软件、计算机没直接关系。


2、软件模型 - 含实体模型,也叫领域模型、概念模型

是软件中的概念和 Class,又可以分为分析和设计两层。

所以,要首先分清你说的是业务类,还是软件类,以及业务模型、软件分析模型和设计模型这三种模型、三个层次的区别。

这些持久化的软件实体类,可以转换成数据库中的表。

很多人不做业务建模,所以一般说的“实体模型、概念模型、领域模型”就是指软件分析模型中的(分析)实体类。

也有一些人说的领域模型,是指软件设计模型中的领域类(业务逻辑处理类),这些就是程序代码的抽象了。


使用道具 举报

回复
论坛徽章:
62
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
发表于 2011-12-30 11:52 | 显示全部楼层
>>也就是分析类和设计类的区别,如何由提取分析类,如何由分析类生成或形成系统的设计类。

推荐你读下 Craig Larman 大师的《UML和模式应用》(Applying UML and Patterns),700p+,介绍得很详细了。

使用道具 举报

回复
认证徽章
论坛徽章:
121
白羊座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-28 15:57:35双鱼座
日期:2015-07-08 14:34:16水瓶座
日期:2015-07-08 14:34:16摩羯座
日期:2015-07-08 14:34:16射手座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-08 14:34:16天枰座
日期:2015-07-08 14:34:16处女座
日期:2015-07-08 14:34:16狮子座
日期:2015-07-08 14:34:16
发表于 2011-12-30 12:45 | 显示全部楼层
感谢张恂老师的解答,您的回复非常清晰。
站在不同层面来看这个问题,确实有时候会搞晕(应该说现在还是有点晕
我一直都在关注你的敏捷OO方法。呵呵。

使用道具 举报

回复
认证徽章
论坛徽章:
121
白羊座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-28 15:57:35双鱼座
日期:2015-07-08 14:34:16水瓶座
日期:2015-07-08 14:34:16摩羯座
日期:2015-07-08 14:34:16射手座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-08 14:34:16天枰座
日期:2015-07-08 14:34:16处女座
日期:2015-07-08 14:34:16狮子座
日期:2015-07-08 14:34:16
发表于 2011-12-30 13:18 | 显示全部楼层
我举个例子吧:拿一个采购系统为例,其中涉及到采购申请单、采购合同等。我在设计领域模型的时候总会从系统实现(也就是持久层)的角度出发去抽取“领域模型”,因此我抽出来的“领域模型”可能就是这样的:
持久层实体类.jpg

使用道具 举报

回复
认证徽章
论坛徽章:
121
白羊座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-28 15:57:35双鱼座
日期:2015-07-08 14:34:16水瓶座
日期:2015-07-08 14:34:16摩羯座
日期:2015-07-08 14:34:16射手座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-08 14:34:16天枰座
日期:2015-07-08 14:34:16处女座
日期:2015-07-08 14:34:16狮子座
日期:2015-07-08 14:34:16
发表于 2011-12-30 13:22 | 显示全部楼层
但是又有人指出,我这样抽取是不合理的,领域模型不能够有“自己创建自己,自己更新自己”的所谓操作。所以他们指出应该是这样:
持久层实体类2.jpg
但是如果是这样,先不管它是不是“领域模型”,亦或是持久层的实体模型,但这种方式的话,主信息中的操作有“添加明细项、修改明细项、删除明细项”等操作。我个人总觉得不合适,因为这岂不是不符合高内聚低耦合的原则了,因为“采购申请”类跨类去操作了“申请明细”类。

使用道具 举报

回复
认证徽章
论坛徽章:
121
白羊座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-28 15:57:35双鱼座
日期:2015-07-08 14:34:16水瓶座
日期:2015-07-08 14:34:16摩羯座
日期:2015-07-08 14:34:16射手座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-08 14:34:16天枰座
日期:2015-07-08 14:34:16处女座
日期:2015-07-08 14:34:16狮子座
日期:2015-07-08 14:34:16
发表于 2011-12-30 13:34 | 显示全部楼层
而我个人又觉得,以上两种方式都不应该被称作为“领域模型”抽取,其实都是在从软件开发和实现的角度,去抽取持久层的实体类。
真正的领域模型应该是客观世界对象的真实反映,再把它们进行建模,所以,我觉得针对这个例子,领域模型是不是应该是这样的?
领域模型.jpg

使用道具 举报

回复
认证徽章
论坛徽章:
121
白羊座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-28 15:57:35双鱼座
日期:2015-07-08 14:34:16水瓶座
日期:2015-07-08 14:34:16摩羯座
日期:2015-07-08 14:34:16射手座
日期:2015-07-08 14:34:16天蝎座
日期:2015-07-08 14:34:16天枰座
日期:2015-07-08 14:34:16处女座
日期:2015-07-08 14:34:16狮子座
日期:2015-07-08 14:34:16
发表于 2011-12-30 13:36 | 显示全部楼层
请张恂大师指教。

使用道具 举报

回复
招聘 : 多个岗位招聘
论坛徽章:
33
2010广州亚运会纪念徽章:跆拳道
日期:2010-11-22 15:42:39灰彻蛋
日期:2012-05-16 13:17:56参与WIN7挑战赛纪念
日期:2012-05-24 10:37:35茶鸡蛋
日期:2012-05-28 17:27:32灰彻蛋
日期:2012-06-13 18:48:14双黄蛋
日期:2012-06-14 14:32:02奥运会纪念徽章:帆船
日期:2012-07-10 09:43:29奥运会纪念徽章:足球
日期:2012-08-17 09:17:32奥运会纪念徽章:帆船
日期:2012-07-26 15:46:49奥运会纪念徽章:赛艇
日期:2012-08-20 16:23:58
发表于 2011-12-30 14:33 | 显示全部楼层
比较高深诶~

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表