我正在尝试创建一个通用类的接口(interface),但是实现类可以具有不同的参数。
例如
public interface IViewModel
{
//...
void ResetReferences();
}
// and then, in my class implementations, something like this:
public class LocationViewModel : IViewModel
{
public void ResetReferences(List<StateProvinces> stateProvinces) //...
}
public class ProductViewModel : IViewModel
{
public void ResetReferences(List<Color> colors, List<Size> sizes) //...
}
因此请注意,我想对ResetReferences
命名约定进行标准化。我很确定我无法做到这一点,但是是否有一种可行的设计模式?例如在我的界面中,如下所示?// variable parameters
void ResetReferences(params object[] list);
但是,如何使我进行类型检查或让它调用所需的实际方法签名等?也许接口(interface)是使用错误的东西?也许只是一个基类和一些编码约定?
谢谢,
最佳答案
将args列表替换为实现相关接口(interface)的对象:
public interface IViewModel
{
//...
void ResetReferences(IResetValues vals);
}
我应该补充一点,IMO,ResetReferences()
不应该接受参数...它应该重置为某个默认值,该默认值将特定于实现您的接口(interface)的各个类型...“Reset”是指,对我来说,“还原到初始状态” ...添加args意味着您可以控制它。