在以下代码中使用工厂类有什么好处?

Ema*_*sev 3 java factory

这是代码:

SAXParserFactory mySAXParserFactory = SAXParserFactory.newInstance();
SAXParser mySAXParser = mySAXParserFactory.newSAXParser();
Run Code Online (Sandbox Code Playgroud)

为什么要使用它,如果你可以使用更直观的东西,如:

SAXParser mySAXParser = new SAXParser();
Run Code Online (Sandbox Code Playgroud)

Pét*_*rök 7

因为这允许框架以SAXParser透明的方式为您提供不同的实现.使用的实现可能取决于配置参数,框架版本等.使用工厂允许框架开发人员例如用不同的,更好的解析器替换旧的,低效的解析器实现,而不破坏任何客户端代码.

请注意,这SAXParser是一个抽象类,因此您甚至无法直接实例化它.