我正在设计一个能够反序列化某些文件的类,并且我想知道这两个选项的含义是什么
// 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)
{
...
}
}
我似乎找不到关于两者之间差异的任何提示。
这两个选项如何比较? 有什么区别吗? 在评估设计时,有什么要注意的地方吗?
答案 0 :(得分:3)
我马上就能想到一个区别:
例如,如果您只想将文件(json)的内容反序列化为对象,则通用方法就足够了,因为所需的类型不会改变任何内容。
答案 1 :(得分:2)
区别很细微: