banq
2007-08-15 14:30
>一句话点醒梦中人

其实对象设计一点不深奥,它就是我们日常生活的知识,只不过我们原先被所谓专业知识(如数据库分析设计)蒙蔽双眼,还有多少人没有醒悟呢。

yananay
2007-08-15 18:24
TPrice 有必要存在吗?

我觉得应该是 TPart 的一个属性

TOrder 也没有存在的必要吧,有一个 出库Order 和 入库Order 就可以了。

甚至我认为出库,入库成为一个订单的属性更合理。

不然,如果订单分为经理签字和经理不签字2种情况,也设计成2个类?

[该贴被yananay于2007年08月15日 18:29修改过]

[该贴被yananay于2007年08月16日 09:16修改过]

banq
2007-08-16 14:48
模型建立有不同意见是最好的,能够加深我们对业务的认识。

如果TPrice 不是一个很重要的事情,确实应该纳入Torder一个属性,我同意这点。

>我认为出库,入库成为一个订单的属性更合理

可能楼上没有对业务流程有一个熟悉,订单有了以后,工厂根据订单生产出产品货物,产品货物才有出库和入库的概念,因为必须首先放到仓库中保存。

领域建模就应该象这样通过不断讨论加深每个参与者对业务的熟悉。不断迭代,最后找到接近事物本质的模型出来。

最近帮助一家公司查看他们软件项目的招标书和设计书,基本就是将数据表结构字段列出来,然后,大谈Spring Hibernate等框架,这显然是一种畸形的设计书,完全不是OO的,高质量的设计书应该是大量篇幅谈论这个项目系统的对象模型设计,如上述讨论设计过程总结。

yananay
2007-08-16 15:16
原来是这样。。呵呵

那么出库入库因该是货物的属性了。

不过还是提醒楼主,刚刚学习从业务领域进行分析的时候,

很容易陷入对象的陷阱,例如你设计的 TPrice。

切忌,你是为了理清业务而使用对象,

而不是为了对象而使用对象。

zwjsoft
2007-08-16 15:30
>可能楼上没有对业务流程有一个熟悉,订单有了以后,工厂根据订单生产出产品货物,产品货物才有出库和入库的概念,因为必须首先放到仓库中保存。

那将出库、入库作为Tparts商品的属性呢?

猜你喜欢