作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我查了一下System.Xml.XmlWriter
类,我注意到它是一个抽象调用类,您必须使用 Create 方法创建新对象,我想知道这背后的 OOP 推理是什么,为什么不 XmlWriter
设计得更像 System.IO
中的类.
最佳答案
这是factory method pattern在实践中,当您希望抽象出应构造接口(interface)或基类的实现的决定时使用。
在这种情况下,当您使用 XmlWriter.Create
时,通过检查 IL 可以看到,该方法具有许多可能的不同内部类型,例如XmlUtf8RawTextWriterIndent
或 HtmlUtf8RawTextWriter
可供选择 - 您需要首先使用 Create
方法创建这些类,因为这些类型是内部类型(因此您不能直接调用它们的构造函数),还因为 Create
方法包含应在何种场景下创建编写器的逻辑。
关于c# - XmlWriter 设计背后的 OOP 推理是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367894/
我正在寻找匹配 /(?=\W)(gimme)(?=\W)/gi 或类似的东西。 \W 应该是零宽度字符来包围我的实际匹配项。 也许有一些背景。我想用添加的文字填充替换某些单词(总是 \w+),但前提是
如何在不使用 Intent 连接到 VPN 服务的情况下以编程方式检测流量是否正在通过 VPN。有系统调用吗? 最佳答案 这个有效: private boolean checkVPN() {
我是一名优秀的程序员,十分优秀!