两个相关的类想用共同的变量咋设计好
你需要“观察者模式”。比如你有一个面板,面板上有键盘监听,按下一个键面板就会知道。想想是怎么实现的。
■网友
更新一下。看了补充的描述后,大概想了一想。因为我也没有做过类似的程序,只能提供一点思路,不能保证一定正确,互相学习。根据题主的描述,这其实是一个状态维护的问题。我的理解是,题主有一个容器A,在其中可能有多个控件,各自独立运动。那其实可以用通知的方式来实现。 容器A内的每一个图形,每次位置发生变化后,将自身位置发送到容器A,然后容器A根据当前所有图形的位置状况,来判断并且计算各个Flag变量的值。这样只需要一个入口方法,可以供多个(理论上不限)图形共用。图形类不负责Flag的设置,只负责将必要的信息发送给容器A即可。---------------------------------------------分割线---------------------------------------------------------类之间是不应该设计的如此高度耦合的。如果需要在类B的实例中操作类A的实例的内部成员,应该根据业务逻辑设计一些方法,然后在类B中声明一个类型为A的成员变量,在类B的内部通过类A的方法来操作。class A{ FlagA {get; set;} FlagB {get; set;} FlagC {get; set;} public void DoSomeThingA() { } public void DoSomeThingB() { }}class B{ TypeA {get; set;} //some condition TypeA.DoSomeThingA(); //some other condition TypeA.DoSomeThingB();}
另外题主你直接上代码吧,你的描述真的让人看不懂。
■网友
class State{ bool flag1; bool flag2; bool flag3; ...};class A{ State _state;};class B{public: B(State* state); State* _state;};class C{public: C(State* state); State* _state;};这样多个相关的类都可以共用相同的变量, 粗放点的话锁state就可以了。
■网友
凡模式问题,讨论各方必须彻底进入场景,你的那些flag都没说明白到底做什么的,也许它们根本不该存在
推荐阅读
- 人员■海安疾控:北京确诊病例密接者及相关人员检测结果均为阴性
- 出入口■注意了!南京地铁两个出入口将临时封闭
- 大连暂停小诊所和村卫生室等相关医疗服务
- 浙江柯桥排查两起进口冷链食品风险相关人员核酸阴性
- 有必要重新开个C店吗
- 耻骨|韧带痛、耻骨也痛,从来没有这么痛过,痛了两个多星期了!”厦门孕妈崩溃:“孕晚期各种不舒服
- python的html5lib这个库咋使用啊我在网上也没有找到相关文档
- 在丁丁租房工作的感受是怎么样的
- 宝宝|判断宝宝冷不冷?摸摸两个部位就知道!
- 行业投资阶段服务类的B2B项目,两个产品方向,但联动,在商业计划书中两个产品并存会不会不聚焦