社区
研发管理
帖子详情
求教!请各位谈谈通常该怎样实现两个类之间的关系。
ltp3
2002-12-23 01:07:08
举个例子:顾客和商品有0..n-0..n的购买关系,那么软件实现时,怎么表达这个关系?
希望各位谈谈自己的经验。
...全文
26
18
打赏
收藏
求教!请各位谈谈通常该怎样实现两个类之间的关系。
举个例子:顾客和商品有0..n-0..n的购买关系,那么软件实现时,怎么表达这个关系? 希望各位谈谈自己的经验。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
不就是多对多的关系吗?
2021 Java面试真题集锦
44 7、一个对象的
两个
方法加 SYNCHRONIZED,一个线程进去SLEEP,另一个线程可以进入到另一个方法吗? 44 8、什么是可重入锁(REENTRANTLOCK)? 44 9、创建线程的三个方法是什么? 45 10、JAVA 怎么获取多线程的...
谈谈
开发者眼中的编程语言是怎样的?
于想加入开发队伍的初学者来说,入门的编程语言究竟要先选哪一个呢?是永恒经典的C语言,还是方兴未艾的Object-C抑或其它神器?若想直接得出确切 的答案,这无疑是程序员界的哥德巴赫猜想;萝卜白菜,各有所爱,每...
怎样规划你毕业以后的人生
怎样规划你的毕业后的人生 我今年39岁了,25岁研究生毕业,工作14年,回头看看,应该说走了不少的弯路,有一些经验和教训。现在开一个小公司,赚的钱刚够养家糊口的。看看这些刚毕业的学生,对前景也很迷茫,想...
浅谈主席树之静态主席树
翻了半天博客都只有代码和千篇一律的讲解,许多细节性的处理都无法理解,只好
求教
大牛来理解,为了防止其余OIer在此上耗费时间,故写一篇主席树学习心得 安利一篇别人的好的博客(就是有点亮)
谈谈
我自己的理解 ...
xv6(12文件系统Inode&;Directory&;Path
文件系统理论部分文件系统是操作系统的重要组成部分,是对文件的组织管理,本文就主要讲述磁盘上的文件是如何组织的和文件操作
两个
部分,废话不多说直接来看。文件系统:创建文件系统的创建在原理上并不复杂,就是...
研发管理
1,265
社区成员
28,324
社区内容
发帖
与我相关
我的任务
研发管理
软件工程/管理 管理版
复制链接
扫一扫
分享
社区描述
软件工程/管理 管理版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章