作者LiarPoker (Liar)
看板C_and_CPP
标题Re: [问题] 物件内的物件...彼此沟通的方法?
时间Wed Jun 24 10:11:02 2009
※ 引述《LiarPoker (Liar)》之铭言:
: 标题: [问题] 物件内的物件...彼此沟通的方法?
: 时间: Wed Jun 24 00:06:52 2009
: 请问假若我有Class A, Class B, Class C, Class D
: 彼此没有继承关系,而是在Class A中有Class B的object (在A内 new一个B)
: Class B内new出一个Class C的object
: Class C内new出一个Class D的object
: 假若今天Class B, C, D都可能要去call Class A的某个function来改变A的某变数值
: 或是Class A可能去call Class D的某个function来改变D的某变数值
: 请问有哪些比较好的做法呢? (或假若不止A,B,C,D...可能有个十层这样的关系)
: 最普通的方式是在A内new B时,把A转成pointer传到B去,B保留一个指向A的pointer
: 同样地在B new C时,继续把A转成pointer传到C去.....类似地一层层传到最内层
: 但有更好的方法吗? 谢谢! (否则若当D要call C或B...代表D同时得拥有A,B,C的指标)
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 123.193.5.4
: → avhacker:设计八成有问题,不知你要做啥,也许该看些design patern书 06/24 00:12
一时不知该举什麽样的例子,就随便乱想一个吧:
假若我设计了一个「模拟地球」的软体:
我有个物件是「地球」
「地球」里面会生成「岛屿(台湾)」
然後在「岛屿」内会有「都市(台北)」
「都市」里还有「人类」
(它们分别都是独立的class object,透过new的方式来建立)
而今天假若有个「人类」要做作业,
得想要透过「地球」的一个函式「取得地球温度」
来得到「地球」的变数「温度」
类似的行为可以怎麽实做呢?
谢谢!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.147.13.222
1F:→ legnaleurc:人类 拿一个指标指向 地球 就好了吧 06/24 20:37
2F:推 yoco315:对阿 -_-" 不是很简单吗... 06/24 23:16
3F:→ LiarPoker:那代表这指标得从地球一层层传到人类手上 06/24 23:27
4F:→ LiarPoker:假设这样的设计模型有十层好了..感觉似乎不是个好方法? 06/24 23:28
5F:→ LiarPoker:所以才请问有没更好的做法~ 06/24 23:28