我正在设计一个能够反序列化某些文件的类,我想知道这两个选项的含义是什么:
// option 1 - generic class
public class XmlConfigurationManager<T>
{
public T ReadConfigurationAndWriteDefault(string configurationPath, Func<T> defaultConfiguration)
{
...
}
public T Deserialize(string configurationPath)
{
...
}
}
// option 2 - generic methods in non generic class
public class XmlConfigurationManager
{
public T ReadConfigurationAndWriteDefault<T>(string configurationPath, Func<T> defaultConfiguration)
{
...
}
public T Deserialize<T>(string configurationPath)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到有关两者之间差异的任何提示。
这两个选项如何比较?会有什么区别吗?在评估设计时是否有任何值得注意的地方需要牢记?
我立刻就能想到一个区别:
例如,如果您想简单地将文件 (json) 的内容反序列化为对象,则通用方法就足够了,因为所需的类型不会改变任何内容。