首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

关于对象关联关系的1点感悟

2012-12-25 
关于对象关联关系的一点感悟这段时间一直在开发项目的后台部分。采用的方法是一个类一个类的设计,这样带来

关于对象关联关系的一点感悟
这段时间一直在开发项目的后台部分。采用的方法是一个类一个类的设计,这样带来很大的一个问题,以后设计一定要分两步走,概要设计和细节设计,在概要设计里面,对核心流程设计的类都要先考虑。
我先设计Store类,每个用户在一个订单中会有一个快递速度的评分StoreOntimeScore.两者是一对多关系。但其实每次评分是关联到一个订单Order的。所以我的设计是Order has_one StoreOntimeScore.Store has_many Orders.Store has_many StoreOntimeScores through order.这个地方发现rails的一个bug.has_many不能through has_one,因为前几天也被这个家伙的一个bug搞死了,于是对他很是失望,之后就变成了对自己失望。
花了些时间来考虑怎么处理这个bug.
1.把has_one改为has_many,has_one也是一种特殊的has_many。代码改动很小,但逻辑上感觉总是那么不舒服。
2.不用through,在StoreOntimeScore直接加一个store_id,问题是冗余了,有可能不一致出错,并且也多了维护的代码。这个时候想到用元编程来解决这个问题。思路是在调用store_ontime_score.order=order,然程序自动设置store_ontime_score.store =store_ontime_score.order.store.于是有了下面需要extend进类的模块。

查看更多 下一篇
热点排行