Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
495 views
in Technique[技术] by (71.8m points)

language agnostic - Why do static Create methods exist?

I was wondering, why do static Create methods exist?

For instance, why use this code:

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

over this code:

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

I cannot find the rationale for using one over the other, and can't find any relation between classes who use this construct over the other.

Can anyone shed some light on this?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

XmlReader is an abstract class. You cannot instantiate it.

Providing a Create method is an instance of the factory pattern. Depending on the specified arguments a different implementation of XmlReader is chosen and returned. For example, there are validating and non-validating XmlReader implementations in the .NET framework.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...