求教!请各位谈谈通常该怎样实现两个类之间的关系。

ltp3 2002-12-23 01:07:08
举个例子:顾客和商品有0..n-0..n的购买关系,那么软件实现时,怎么表达这个关系?

希望各位谈谈自己的经验。
...全文
26 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltp3 2002-12-28
  • 打赏
  • 举报
回复
sensation(sensation) , lanying(蓝鹰.net) :能详细点吗?谢谢。
lanying 2002-12-27
  • 打赏
  • 举报
回复
三个类,跟数据库设计的表一样
sensation 2002-12-26
  • 打赏
  • 举报
回复
顾客和商品都是实体,请考虑关联类的用法!
ltp3 2002-12-26
  • 打赏
  • 举报
回复
cxx1997(小网虫_L):
你的方法是去掉类图中的关系,是这个意思吗?

如果是这样,肯定不行。
ltp3 2002-12-25
  • 打赏
  • 举报
回复
谢谢楼上的两位。

还有一个同步问题,就是在商品类中删除活增加一个客户,应该在相应的客户类中增加或删除一个商品,反之亦然。这个其实不难解决,就是觉得有点别扭。

两位对这个有什么好招吗?

tomboy123123123 2002-12-25
  • 打赏
  • 举报
回复
同意楼上的说话,两个类映射为独立的访问实体,相互调用就行了。
因为你的两个类在抽象层次上是同等级别的,没有明显的聚合关系
cxx1997 2002-12-25
  • 打赏
  • 举报
回复
个人意见,说错了,请大家指点
首先 我觉得 商品、客户 是在数据层上表现为 n:n的关系,也就是说在数据库中他们是N:N的关系。但是程序中就不一样了。程序中,商品、客户两个类没有互相的直接关系(同时我认为是否需要这两个类也需要考虑,我不清楚你的设计)。商品类中有一个方法可以得到一个商品实例对应的客户数据(注意,是数据不是客户的类)。同样,对于客户来说,也是一样,这样,在类图中,客户和商品就没有任何直接的联系。

//////////////////////////////////////
还有一个同步问题,就是在商品类中删除活增加一个客户,应该在相应的客户类中增加或删除一个商品,反之亦然。这个其实不难解决,就是觉得有点别扭。
/////////////////////////////////////
我觉得 你将 数据层 和 业务层 混合在一起了,所以实现时,就非常别扭。
ltp3 2002-12-25
  • 打赏
  • 举报
回复
WhiteEat(白吃) :
我只是举个例子,只是想求教多对多关系怎么实现,而不是这个例子怎么实现。
cxx1997 2002-12-25
  • 打赏
  • 举报
回复
直觉告诉我 楼主 想歪了。。。
原因还没想到,待我仔细想想,先做个记号。。。
WhiteEat 2002-12-25
  • 打赏
  • 举报
回复
我觉得楼主的建模不妥当,在其中插入一个售货员的角色,整个问题就简单多了。
ltp3 2002-12-24
  • 打赏
  • 举报
回复
我的意思是:从商品类可以访问到购买过这个商品的客户,从客户类可以访问到曾经购买过的商品。以下是我的一个实现方式:当访问商品类的属性“购买客户”时,访问数据库,生成一个“客户类集合”返回。反之也一样。
这样有一个问题,类的使用者如果不关心类的实现,就有可能导致频繁访问数据库。如果在商品类和客户类中放一个CACHE,那么,增加或删除购买关系时,就必须很小心地同步商品类和客户类中的CACHE,就会把程序弄得很复杂。

各位有其它的好办法吗?
frenzieddragon 2002-12-24
  • 打赏
  • 举报
回复
可以用管理器来管理缓存对象,例如商品管理器管理商品类的实例,客户类管理器管理客户类的实例,要取得任何一个实例都必须从相应的管理器取得,这样就可以保证同步。
ltp3 2002-12-24
  • 打赏
  • 举报
回复
help
Tod707070 2002-12-23
  • 打赏
  • 举报
回复
这个是不同角度的东西,关注一个商品有多少客户购买,或者一个客户购买了哪些东西。
完全看你的操作者是什么人,或许是销售人员(关注前者),或许是客户经理(关注后者)
goodpiano 2002-12-23
  • 打赏
  • 举报
回复
不清楚是什么性质的系统。
如果一般进销存,可以有订单对象,订单对象包含一个顾客对象,多个商品对象。我认为简单的关系应该这样。当然还可以有很复杂的方式
drama 2002-12-23
  • 打赏
  • 举报
回复
楼主说的是实现的时候。也就是详细设计。
tomboy123123123 2002-12-23
  • 打赏
  • 举报
回复
不太懂题义呀,真心英雄说的对,这就是多对多嘛,还要朗个表达这个关系?
wuxuan 2002-12-23
  • 打赏
  • 举报
回复
不就是多对多的关系吗?

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧