language-agnostic - 为什么存在静态 Create 方法?

标签 language-agnostic design-patterns oop factory-pattern

我想知道,为什么要静态 Create方法存在吗?

例如,为什么使用此代码:

System.Xml.XmlReader reader = System.Xml.XmlReader.Create(inputUri);

在这段代码上:
System.Xml.XmlReader reader = new System.Xml.XmlReader(inputUri);

我找不到使用一个而不是另一个的理由,也找不到使用这个构造而不是另一个的类之间的任何关系。

任何人都可以对此有所了解吗?

最佳答案

XmlReader是一个抽象类。你不能实例化它。

提供Create方法是工厂模式的一个实例。根据指定的参数,选择并返回 XmlReader 的不同实现。例如,.NET 框架中有验证和非验证 XmlReader 实现。

关于language-agnostic - 为什么存在静态 Create 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2470290/

相关文章:

language-agnostic - 特定于语言环境的索引字符

java - Spring 发布订阅?

java - 如何在 Java 中不公开公共(public)接口(interface)

algorithm - 什么算法可以让一个数字最接近一个可以均匀(在一定范围内)分成两个其他常数的常数?

security - 何时禁用登录表单上的 "save password"功能?

java - 如果哈希码等于实现不正确,我的对象创建会失败吗?

delphi - 抽象与接口(interface) - 在 Delphi 中分离定义和实现

c++ - 在运行时选择模板参数时如何避免代码呈指数级增长

regex - 为什么无法使用正则表达式解析 HTML/XML : a formal explanation in layman's terms

design-patterns - 常见模式的命名约定?