JiveJdon Community Forums
在线309人 Home | 论坛 | 培训咨询 | 精华 | 查搜 | 注册 | 登陆 |
首页 » 论坛 » 设计模式、框架和架构
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表
???en_US.forumThreadNext.name??? 下一主题
这个主题共有 9 回复 / 1 页 [ ]  发表新帖子  回复该主题贴
sixiang3310

发表文章: 8
注册时间: 2007年08月01日 15:05
给他发消息
请教定单建模问题 发表: 2007年09月21日 21:22 回复
banq大哥你好 ,上次你给我提示后我看了一下《分析模式》
现我把类图改了
Conversion:为两单位的转换
例如:糖 :1箱=10包,1包=20袋,则糖有两个Conversion
largerUnit:箱 largerUnit:包
smallUnit:包 smallUnit:袋
ratio:10 ratio:20

Orderline 定单行
Quantity 数量
QuantyConversion 数量转换
例如242袋糖转为1箱2包2袋

请问banq大哥这样设计有问题吗?







[该贴被sixiang3310于2007年09月21日 21:24修改过]
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:请教定单建模问题 发表: 2007年09月22日 10:42 回复
初步看不错,不过由于引入单位细节处理,模型显得复杂,整个图有些蜘蛛网倾向,这是数据库实体建模最容易范得毛病,我们需要避免。

需要关注重点,你的核心模型是Order OrderLine ,不要将换算类跨出Product范围,去和Orderline的属性Quantity发生关联。单位换算应该只限于Prodcut这个核心模型周围,因为单位确实应该是Product的一个属性。

虽然OrderLine中会有数量单位,但是这个单位是因为Product带出的单位。

所以,建模应该对主次以及属性归属(也就是聚合关系)进行确认。不能将对象属性和对象并列在一起,打个比喻就是儿子老子并列在一起,他们是一家的。

在管理系统中,有时由于企业有各种数据表单原因,在这些表单中,对象属性被打散了作为数据并列在表单项目中,因为我们不期望发明这些表单的人有对象意识,他们只是感觉需要那个数据项目就列出来,而我们分析时,则不能这样糊涂,特别如果按照数据表实体模型来分析,看到这些数据项目正好是数据表的字段,就以讹传讹,自以为拷贝不走样放应到软件中了,实际由于没有认识到表单后面的对象本质,最后整个管理软件系统从源头就陷入浮于表面,直至难以维护和拓展。

现在很多做管理软件的公司如金碟和用友,他们吹嘘ERP和SOA很厉害,真不知道他们是按照什么分析方法来做他们软件的,软件出生之时就畸形了,再加入什么时髦概念SOA,SAAS等,又都是浮华表面,能长久吗?


btw:楼主以后问问题需要接着上一个帖子,这样给别人浏览时,能够方便学习和讨
论。
http://www.jdon.com/jivejdon/thread/32716.html
[该贴被banq于2007年09月22日 10:43修改过]
sixiang3310

发表文章: 8
注册时间: 2007年08月01日 15:05
给他发消息
回复:回复:请教定单建模问题 发表: 2007年09月22日 15:46 回复
先谢谢banq大哥,从j道中真的学到很多东西,我也希望自己能在j道的指引下和j道一起成长!
sixiang3310

发表文章: 8
注册时间: 2007年08月01日 15:05
给他发消息
回复:回复:请教定单建模问题 发表: 2007年09月23日 12:26 回复

banq大哥 你说的不要将换算类跨出Product范围,去和Orderline的属性Quantity发生关联,这个我明白了。
可你说orderline 不应用数量单位,因为product中有这些单位
如果只是以箱、包、袋单个单位的入货或出货那当然是,可是系统要求
同时用到三个单位怎办?
例如甲从仓库中领了1箱+2包+3袋糖
如果不建立3个数量分别代表,那单用数字怎样解决呢?
(对了类图中的Orderline和Quantity应市1对多关系,我画措了)
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:回复:回复:请教定单建模问题 发表: 2007年09月23日 19:36 回复
是的,这个问题正是"分析模式"这本书这个章节提出的解决方案,引入Observation这样一个类,让Orderline只和Observation发生关联,并且引入phenomenon类型:





sixiang3310

发表文章: 8
注册时间: 2007年08月01日 15:05
给他发消息
回复:回复:回复:回复:请教定单建模问题 发表: 2007年09月23日 20:00 回复
banq大哥,按你那样来说如对应的是人,那measurement对应的应是身高,体重.
category observation 对应的应是性别,血型等
那么我哪个问题应是
orderline---person
measurement----出入货数量
category observation -----product
是这样理解吗??????
banq

发表文章: 9114
注册时间: 2002年08月03日 17:08
给他发消息
回复:回复:回复:回复:回复:请教定单建模问题 发表: 2007年09月24日 15:30 回复
我上面贴出这张图的解释:
比如:性别是一种phenomenon type, 男性和女性是category,为了表示一个人是男人,我们创造了observation ,它表示:phenomenon type是性别;category是男或者女。这些都是描述数量状态quantitative statement,都是和数量有关,怎么会跟product有关。

考虑你这个项目糖有1箱糖2包3袋,其实没有上面这张图复杂,你的数量单位性质只有一个,没有多个,所以,无需引入phenomenon type .

OrderLine只要和Unit发生关系就可以,Unit通过换算类可以换算为其他单位。在你的图中,QuantyConversion怎么得出我不知道,而且Unit怎么和Quantity有关系呢?一个订单条目有几个部分组成?商品+数量+数量单位,这些都是其组成部分,是一种聚合关系。




[该贴被banq于2007年09月24日 15:33修改过]
sixiang3310

发表文章: 8
注册时间: 2007年08月01日 15:05
给他发消息
回复:回复:回复:回复:回复:回复:请教定单建模问题 发表: 2007年09月24日 18:13 回复
明白了!
banq大哥可能你对我的数量有点误解,我所说的数量是 数字+ 单位
<分析模式>中文版是这定义的
数量=数字+单位+相关的算术运算操作
所以我的quantity才和unit有关联
现我已把QuantyConversion去了,把换算功能放在conversion
yananay

发表文章: 54
注册时间: 2005年02月23日 22:15
给他发消息
re:请教定单建模问题 发表: 2007年09月28日 10:45 回复
感觉楼主是在为了领域设计而领域设计,不是为了解决问题而领域设计。
这么学效果不大。
建议你做一个实际的东西,就算是一个作业也好。
作下来,就有些体会了。

最重要的是,不要指望一下子就能学会领域设计。
Eric Evans 是聚集了20多年的经验,尚且在书中说无法确定最好的方法。
所以不要一步求成。

有的时候错误也是一种宝贵的财富。
sixiang3310

发表文章: 8
注册时间: 2007年08月01日 15:05
给他发消息
回复:re:请教定单建模问题 发表: 2007年09月28日 11:06 回复
>感觉楼主是在为了领域设计而领域设计,不是为了解决问题而领域设计。
我现在就是要解决实践问题呀 我现要写一个仓管的程序,由于对这方面的
知识不大了解,所以不敢贸然下手就编写,就算写出来了还是以前知识的重复
没有什么进步.设计模式和分析模式也是刚学,不知yananay兄有啥好建议呢?
这个主题有 9 回复 / 1 页 [ ]
???en_US.forumThreadPrev.name??? 上一主题
Go back to the topic listing   返回主题列表    返回页首  返回页首
???en_US.forumThreadNext.name??? 下一主题
热点TAG: AOP cache DDD EJB 集群 设计模式 Hibernate IOC JiveJdon OO RBAC Spring Struts
查询本论坛内 回复超过的热门帖子
快速发表回复
标题
 
粗体 斜体 下划线 插入图片 插入代码 插入url链接 插入附件
内容
 

解惑之道在J道 ,打造中国最具影响力的的企业软件社区
OpenSource JIVEJDON v3.0 Powered by JdonFramework Code © 2002-08 jdon.com

anti spam