![]() |
1
2
在我看来,没有最好的办法。根据类的使用方式,有多种方法来实现类,它们是更好还是更差的适合性。 当您希望为许多“客户机”或“观察者”实现观察者模式时,可以使用事件,这些“客户机”或“观察者”需要知道对象的状态,并且需要在该状态更改时得到警报。这适用于只有一个客户机的退化情况,但更改对象状态的方法的调用方不是需要了解更改的调用方。 当调用方只需要知道状态时,没有类的其他观察者时,使用返回值。这很简单,并且将类状态的知识范围限制为立即需要了解它的项。 最后,不要过度设计这个。如果只需要通知调用者,则不要实现事件。如果在以后某个日期需要“观察”类,那么在该点实现事件。 |
![]() |
2
5
好。。。到 我 ,事件是 好的 这样做的方法。 然而,如果我要设计这个应用程序,那就归结为一个问题:当ExperienceBars事件达到最终值时,它会不会是ExperienceBars事件? 曾经 被调用updatebar的类以外的任何人使用。 如果您正在设计一个在许多地方使用的组件(这似乎是目标),那么对我来说,答案几乎是肯定的。 对 因此我的答案是 使用事件 ! 胜利者 |
![]() |
3
2
这一切都取决于组件和程序流的耦合。事件的缺点是,您将增加程序的复杂性,因为当任何一段代码都可以订阅您的事件时,很难准确地跟踪执行流程。好处是它允许更灵活和可伸缩的设计,因为任何一段代码都可以订阅您的事件。
这就是问题所在,如果
就个人而言,我希望XP是
|
![]() |
4
1
我将使用事件而不是返回值。为什么?原因有二:
我将有一个与达到某个级别相关联的事件,然后该事件的“监听者”可以相应地作出响应。 |
![]() |
5
0
我认为让体验栏触发一个事件是没有意义的——在这种情况下,返回值是可以的。然后它可以调用player的levelup函数,如果需要,它可以从player类中触发一个onlevelup事件。 |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |