在类之间交换数据
本文关键字:数据 交换 之间 | 更新日期: 2023-09-27 18:07:24
我有一个名为main的主类,在该主类中有一个名为State的变量,它是int
类型。状态变量包含一个状态ID,它让程序知道它处于哪个状态(菜单,指令屏幕…)在Main类中,我有一个来自Sprite类的对象。现在我的问题是,如何告诉对象状态已经切换(这个很简单,这个也很容易,但下一部分会给我带来问题),以及对象如何告诉Main类他想要切换状态?
这就是我从你的问题中理解的,
-
Main
是调用Sprite
实例方法的控制器类 -
State
决定在Sprite
实例上调用的方法
Sprite
类应该包含一个名为State
的静态属性(最好是enum
而不是int
)。更新状态变量是实例方法的责任。在完成实例方法的执行后,调用者可以检查实例所处的状态,然后适当地确定下一个操作过程。
一个更好的方法是根本不公开状态(除非需要由外部对象使用)。在您的情况下,似乎状态仅用于确定执行的方法(我猜您有switch
语句来执行此操作)。
如果你想让实例根据它自己的状态执行一个特定的方法,那么你可以把这个决定留给实例本身,而不是让控制器来决定。实例可以有一个方法(比如Update()
或Execute()
),该方法根据操作的上下文(比如菜单选项等)执行操作。该方法可以根据静态state
成员决定执行哪个内部方法。