2010-10-06 73 views
0

我只是碰到了某种形式的代码,并得到了相当多的震撼:直接调用方法,或者Raise事件调用方法(事件处理程序)?

代码片段:

Class ABC 
    Private Event Event123() 

    Private Function ParentMethod() 
     RaiseEvent Event123() 
    End function 

    Private Function ChildMethod() Handles Event123 
     ... code here 
    End function 
End class 

(注意功能和事件是私人的,该代码是用来的。唯一的类) (另请注意,该代码是在VB,但这种模式可以应用到其他语言)

通常情况下,我只想直接从ParentMethod致电ChildMethod,象下面这样:。

代码片断2:

Private Function ParentMethod() 
    ChildMethod() 
End function 

我想知道,是代码片段一些类型的最佳/推荐的做法?为什么?

回答

1

从我的角度来看,这只是奇怪的,没有别的,没有别的。我看不出任何优势,但是如果所有这些成员都是私有的,那么使代码看起来更复杂。如果它们是公开的(至少是事件声明),则可以推测在ParentMethod中创建可扩展性或通知点的意图,然后由于某种原因自动订阅ChildMethod

+0

是的,我同意你的意见。这就是为什么当我看到代码时我“感到非常震惊”。 :) – Gan 2010-10-07 02:26:38

1

我想这个代码是一些未实现的功能的结果。我想开发人员首先计划在该类中提供公共事件来处理父级方法。但后来他改变了主意,只是把事件变为私人。从这个角度来看,ChildMethod是用户处理事件的一种模拟。
我没有看到使用私人活动的优点。难以理解的代码和额外不必要的对象生成等缺点是显而易见的。

+1

仅供参考,功能已实现并被调用。是的,我同意你的观点。 :) – Gan 2010-10-07 02:29:19