vb.net - 使用 VB.Net 的访问者模式

标签 vb.net visitor-pattern

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

''' <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 for Overridable Sub

最佳答案

您可以使用基类(可以用 MustInherit 标记,但不是必须)为所有方法定义默认实现。每个具体的 Visitor 将继承基类并仅重写它需要的方法。

关于vb.net - 使用 VB.Net 的访问者模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22849054/

相关文章:

c# - 使用访问者模式从平面 DTO 构建对象图

ruby - Ruby 中的访问者模式,还是只使用 block ?

javascript - 如何在javascript中实现访问者模式?

c++ - 添加调试工具以增强变体访问者

c++ - 树的常量和非常量版本的访问者模式

c# - 在 PDF 查看器中以编程方式启用 'selecting tool'

javascript - 显示加载进度模式不隐藏

vb.net - 为什么访问 AppData 中的文件(在 Vista 上)需要管理员权限?

vb.net - WCF 服务生成的代理类将函数公开为 ByRef Sub

vb.net - 在VB中将字符串或base10转换为base 2