vb.net实现具有不同接口的策略模式

时间:2011-06-07 10:34:11

标签: vb.net design-patterns strategy-pattern

是否可以在VB.net中实现具有不同参数的策略模式? 例如,我有以下代码:

Public Interface InterfaceDataManipulation
Sub updateMyData()
End Interface

如何在实现具有不同参数的上述接口类的类中实现updateMyData,例如在类x中:

Public Class X
Implements InterfaceDataManipulation
Public Sub updateMyData(ByVal x as String)
 Console.Writeline(x)
End Sub
End Class

但是IDE引发了一个错误“类x必须在接口InterfaceDataManipulation上实现updateMyData”

2 个答案:

答案 0 :(得分:2)

通过添加一个你没有实现接口的参数 - 接口的想法是人们可以通过只知道接口来使用你的类 - 所以你的sub参数与他们的期望不符。

可能有很多方法可以为这只猫做皮肤,但这些只是一些选择:

  • 请勿使用界面
  • 将您的updateMyData版本实现为重载,但仍然应该在没有参数的情况下实现原始版本
  • 将x作为属性传递给您的类,然后updateMyData方法可以使用,同时仍然具有与接口匹配的签名。

答案 1 :(得分:1)

Public Class X
Implements InterfaceDataManipulation
Public Sub updateMyData(ByVal x as String) Implements InterfaceDataManipulation.updateMyData
 Console.Writeline(x)
End Sub
End Class

方法签名需要附加在接口中实现的方法,如上所示。