类MediaPlayer的实例我在看一些教程Android开发,我看到了下面为什么不使用new关键字
MediaPlayer mp = MediaPlayer.create(this, R.id.song)
的情况下我的问题是:为什么没有一个“新“在创建新的MediaPlayer对象时涉及到关键字?我认为,新的,必须随时使用您创建
类的实例那么,如果我做
MediaPlayer mp = new MediaPlayer();
mp.create(this, R.id.song);
这是错的?
你没有错。我在解决方案中解释了原因。 – 2012-08-03 14:28:03
这类事情在处理SPI类型的类时比较常见,比如Runtime,Toolkit,DocumentBuilderFactory等等。使用静态工厂方法允许用户不将自己绑定到特定的实现。或者在Toolkit的情况下,您可以使用标准工具包来运行平台,或者可能是无头工具包。在这种特殊情况下,它似乎只是API作者的一种风格选择。 – Matt 2012-08-03 15:57:48