As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center获取指导。




7年前关闭。





我查看了System.Xml.XmlWriter类,发现它是一个抽象调用类,您必须使用Create方法创建新对象,我想知道OOP背后的原因是什么,为什么XmlWriter不能设计得更像System.IO中的类。

最佳答案

XmlWriter是可编写Xml文档的类的抽象基类。在docs中,您可以看到从XmlWriter派生了各种类,这些类将Xml写入各个目标。 XmlWriter本身只是为Xml编写者定义了公共接口和一些肤浅的实现。

这类似于abstract TextWriter class

静态Create方法似乎存在,因为在某些情况下(例如写入文件),建议使用特定的子类。该子类由各自的Create方法实例化。

请注意,用于写入文件的XmlWriter.Create不一定会创建XmlTextWriter。 .NET框架代码可能会决定不同的(可能是内部的)类型更适合您的特定环境和设置。调用静态Create方法时,不必关心实际实例化的类型。

关于c# - XmlWriter设计背后的OOP推理是什么? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15367894/

10-09 13:00