【发布时间】:2015-01-23 20:39:43
【问题描述】:
我很好奇单个委托来管理大量事件是否比使用多个委托来处理所有这些事件更好。
例如,假设我有 50 个事件都属于相同的“类别”和类。这些事件可以分为 5 个组。您是只为所有 50 个相关事件指定 1 个代表,还是为每个 10 个事件的特定组指定 5 个代表?
编辑:这听起来像是一个显而易见的问题,但我没有足够的理解力来自信地为自己回答这个问题。
Edit2:这是一些示例代码。
//## Left-Button
public delegate void LeftButtonHandler();
public static event LeftButtonHandler LeftButtonHeldEvent;
public static event LeftButtonHandler LeftButtonUpEvent;
private static void LeftButton(){
if (Input.GetButton("KeyLeft")){
if (LeftButtonHeldEvent != null)
LeftButtonHeldEvent();
}
}
private static void LeftButtonUp(){
if(Input.GetButtonUp("KeyLeft")){
if (LeftButtonUpEvent != null)
LeftButtonUpEvent();
}
}
//## Down-Button
public delegate void DownButtonHandler();
public static event DownButtonHandler DownButtonHeldEvent;
public static event DownButtonHandler DownButtonUpEvent;
private static void DownButton(){
if (Input.GetButton("KeyDown")){
if (DownButtonHeldEvent != null)
DownButtonHeldEvent();
}
}
private static void DownButtonUp() {
if (Input.GetButtonUp("KeyDown")) {
if (DownButtonHeldEvent != null)
DownButtonUpEvent();
}
}
问题是关于这个,我有更多的意见要轮询。只为所有密钥创建一个委托比为每个密钥使用一个新委托更好吗?
注意:这是统一的,但这不是统一的特定问题。我知道发布事件的输入轮询有点荒谬,但是统一没有提供订阅自己的 UI 事件的方法。我此时并不特别关心这一点,只关心我应该使用 1 个委托还是多个委托。
【问题讨论】:
-
我绝对不想维护一个包含 50 个不同代表的代码库,它们都做同样的事情。讨厌到这样的地步,如果未来的雇主在面试中向我透露了这一点,并随后向我提出了要约,我可能会拒绝他们。
-
也就是说,我可能更讨厌一个带有包含 >5 个案例的 switch 语句的单个委托...看,这就是为什么发布一些代码来提供你所面临的情况的例子。这里没有真正的 100% 防弹答案。
-
那么你会说,对于给出的例子,一个代表最好吗?我只是确保唱出答案似乎如此明显,我在质疑我是否真的知道。编辑:明白了,我会放一些代码。