|
这个主题共有 9 回复 / 1 页 [
]
|
|
|
|
|
|
请教定单建模问题
|
发表: 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修改过]
|
|
|
|
|
|
回复:请教定单建模问题
|
发表: 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修改过]
|
|
|
|
|
|
回复:回复:请教定单建模问题
|
发表: 2007年09月22日 15:46
|
回复
|
|
|
先谢谢banq大哥,从j道中真的学到很多东西,我也希望自己能在j道的指引下和j道一起成长!
|
|
|
|
|
|
回复:回复:请教定单建模问题
|
发表: 2007年09月23日 12:26
|
回复
|
|
banq大哥 你说的不要将换算类跨出Product范围,去和Orderline的属性Quantity发生关联,这个我明白了。 可你说orderline 不应用数量单位,因为product中有这些单位 如果只是以箱、包、袋单个单位的入货或出货那当然是,可是系统要求 同时用到三个单位怎办? 例如甲从仓库中领了1箱+2包+3袋糖 如果不建立3个数量分别代表,那单用数字怎样解决呢? (对了类图中的Orderline和Quantity应市1对多关系,我画措了)
|
|
|
|
|
|
回复:回复:回复:请教定单建模问题
|
发表: 2007年09月23日 19:36
|
回复
|
|
是的,这个问题正是"分析模式"这本书这个章节提出的解决方案,引入Observation这样一个类,让Orderline只和Observation发生关联,并且引入phenomenon类型:

|
|
|
|
|
|
回复:回复:回复:回复:请教定单建模问题
|
发表: 2007年09月23日 20:00
|
回复
|
|
banq大哥,按你那样来说如对应的是人,那measurement对应的应是身高,体重. category observation 对应的应是性别,血型等 那么我哪个问题应是 orderline---person measurement----出入货数量 category observation -----product 是这样理解吗??????
|
|
|
|
|
|
回复:回复:回复:回复:回复:请教定单建模问题
|
发表: 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修改过]
|
|
|
|
|
|
回复:回复:回复:回复:回复:回复:请教定单建模问题
|
发表: 2007年09月24日 18:13
|
回复
|
|
明白了! banq大哥可能你对我的数量有点误解,我所说的数量是 数字+ 单位 <分析模式>中文版是这定义的 数量=数字+单位+相关的算术运算操作 所以我的quantity才和unit有关联 现我已把QuantyConversion去了,把换算功能放在conversion
|
|
|
|
|
|
re:请教定单建模问题
|
发表: 2007年09月28日 10:45
|
回复
|
|
感觉楼主是在为了领域设计而领域设计,不是为了解决问题而领域设计。 这么学效果不大。 建议你做一个实际的东西,就算是一个作业也好。 作下来,就有些体会了。
最重要的是,不要指望一下子就能学会领域设计。 Eric Evans 是聚集了20多年的经验,尚且在书中说无法确定最好的方法。 所以不要一步求成。
有的时候错误也是一种宝贵的财富。
|
|
|
|
|
|
回复:re:请教定单建模问题
|
发表: 2007年09月28日 11:06
|
回复
|
|
>感觉楼主是在为了领域设计而领域设计,不是为了解决问题而领域设计。 我现在就是要解决实践问题呀 我现要写一个仓管的程序,由于对这方面的 知识不大了解,所以不敢贸然下手就编写,就算写出来了还是以前知识的重复 没有什么进步.设计模式和分析模式也是刚学,不知yananay兄有啥好建议呢?
|
|
|
|