假设我有一个这样的访问者界面:
''' <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
...
我知道我无法在Overridable
中使用Interface
关键字。那么也许我应该在我的基类中删除Interface
Overridable Sub
?
答案 0 :(得分:2)
您可以使用定义所有方法的默认实现的基类(可以由MustInherit标记,但不是必须标记)。每个具体的访问者都将继承基类并仅覆盖它所需的方法。