假设我有一个像这样的访问者界面:
''' <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/