为了账号安全,请及时绑定邮箱和手机立即绑定

两个互相引用的类,用工厂模式创建时,死循环的问题

两个互相引用的类,用工厂模式创建时,死循环的问题

慕田峪9158850 2019-03-21 18:15:22
假设有电脑、人 这么两个类,如图所示。class person{computer myComputer;}class computer{person myOwner;}用工厂模式如果我要创造小明这个人,那么我要用人的工厂去创造小明,在创造的时候我要set他有个HP电脑,那么我又要用电脑工厂去创造HP电脑。但是创造HP电脑的时候我又要去用人的工厂创造小明这个人,这不就是循环下去了吗?所以我纳闷了,1要么这样设计类是不正确的,2要么有其他办法解决这个问题学习得不好,请大神解答
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

小明应该不是抱着电脑出生的, 而HP电脑在生产时应该也没有打着小明的签。 所以构造时可能不必提供相应的参数。当然抽象可能不一定需要完全遵照现实。

其次,电脑一般情况下对于谁是自己的Owner可能不太关心,如果可以去除这种依赖最好,单向依赖比双向依赖简单, 简单就一定是好的。


查看完整回答
反对 回复 2019-04-30
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

支持楼上,创建一个人的时候,不可能让他衣帽整齐,拿着名片出生吧,是生下来以后才有的其他东西。所以在工厂里创建人的时候,只要保证其有这个属性几个,并不一定赋值。


查看完整回答
反对 回复 2019-04-30
?
HUWWW

TA贡献1874条经验 获得超12个赞

这两个类的设计是有问题的,电脑这个类中可以不要拥有者,在创建人这个类的时候可以实例化一个电脑类,然后这个关联信息保存一个地方,查看电脑拥有者的时候去查以保存的就好了


查看完整回答
反对 回复 2019-04-30
  • 3 回答
  • 0 关注
  • 645 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信