【发布时间】: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#。