两个相关的类想用共同的变量咋设计好

你需要“观察者模式”。比如你有一个面板,面板上有键盘监听,按下一个键面板就会知道。想想是怎么实现的。
■网友
更新一下。看了补充的描述后,大概想了一想。因为我也没有做过类似的程序,只能提供一点思路,不能保证一定正确,互相学习。根据题主的描述,这其实是一个状态维护的问题。我的理解是,题主有一个容器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都没说明白到底做什么的,也许它们根本不该存在


    推荐阅读