GeR*_*ReV 14 language-agnostic oop design-patterns factory-pattern
我在想,为什么Create存在静态方法?
例如,为什么要使用此代码:
System.Xml.XmlReader reader = System.Xml.XmlReader.Create(inputUri);
Run Code Online (Sandbox Code Playgroud)
在这段代码上:
System.Xml.XmlReader reader = new System.Xml.XmlReader(inputUri);
Run Code Online (Sandbox Code Playgroud)
我找不到使用one over other的理由,也找不到使用这个构造的类与其他类之间的任何关系.
任何人都可以对此有所了解吗?
更一般的答案......
人们喜欢这种方法的原因,被称为"静态工厂方法",是因为你可以给它们一个名字(而不是构造函数).因此,如果您需要三个不同的构造函数,则可以创建静态工厂方法,这些方法的名称与其使用相关.
另一个原因是工厂方法实际上并不需要创建新对象 - 如果需要,它可以反复返回相同的对象.