我有一个包装的 XmlDocument 类,在其中,我想检查是否有同名的缓存 XmlDocument 对象,然后“成为”该对象。有更好的方法吗?
namespace myXmlUtilities {
class SpecificAutoLoadingCmsXmlDocument : System.Xml.XmlDocument {
private string documentName = "joiseyMike.xml";
public void loadFromCms() {
if (cache[documentName] != null)
LoadXml(((XmlDocument)cache[documentName]).OuterXml);
else
// ... load from the CMS's database.
}
public SpecificAutoLoadingCmsXmlDocument() {
loadFromCms();
}
}
已编辑:我使示例更加逼真。为早期的快速版本道歉。
最佳答案
您应该改用工厂模式,这样您就可以将此逻辑放入工厂方法中。
所以你最终会得到:
public static XmlDocument GetNewDocument(string documentName) {
if (cache[documentName] != null)
return cache[documentName];
else
return new XmlDocument();
}
因此,您无需执行简单的 new XmlDocument();,而是调用静态 GetNewDocument() 方法。
关于c# - 一个被包装的对象是否有可能到 "become"一个相同类型的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672967/