直接调用方法,或者调用事件来调用方法(事件处理程序)?

时间:2010-10-06 10:52:53

标签: .net

我刚碰到某种代码并且有点震惊:

代码段1:

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是某种最佳/推荐的做法吗?为什么呢?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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