【问题标题】:Visitor Pattern with VB.NetVB.Net 的访问者模式
【发布时间】:2014-04-03 21:09:19
【问题描述】:

假设我有一个这样的访问者界面:

''' <remarks>Visitor Pattern</remarks>
Public Interface IVisitor
    Sub Visit(value As Type1)
    Sub Visit(value As Type2)
    Sub Visit(value As Type3)
    Sub Visit(value As Type4)
    Sub Visit(value As ...)
    ...
End Interface

有没有办法让我的具体访问者避免实现他们不需要的访问功能?我想避免在我的具体访问者中做这样的事情:

#Region "Methods not implemented (not needed)"

    Public Sub Visit(value As Type4) Implements IVisitor.Visit

    End Sub

    ...

我知道我不能在Interface 中使用Overridable 关键字。所以也许我应该在我的基类中将Interface 删除为Overridable Sub

【问题讨论】:

  • 你有没有想过使用泛型,这样你只需要使用一个 Visit 方法。例如子访问(值为 T)。对不起,如果语法不是 100%,因为我通常使用 C#。

标签: vb.net visitor-pattern


【解决方案1】:

您可以使用为所有方法定义默认实现的基类(可能由 MustInherit 标记,但不是必须的)。每个具体的访问者都将继承基类并仅覆盖它需要的方法。

【讨论】:

  • 是的,这就是我所说的“丢弃接口”的意思。我认为这实际上是我唯一的选择。谢谢!
猜你喜欢
  • 2022-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 2012-03-11
  • 2010-09-07
相关资源
最近更新 更多