请告诉我何时在 java 中使用 getInstance() 方法。 [关闭]
Posted
技术标签:
【中文标题】请告诉我何时在 java 中使用 getInstance() 方法。 [关闭]【英文标题】:please tell me when to use getInstance() method in java. [closed] 【发布时间】:2012-05-15 16:15:41 【问题描述】:java中什么时候使用getInstance()方法,getInstance(null)是什么意思?
locationProvider = LocationProvider.getInstance(null);
谁能告诉我上面这行的意思?
【问题讨论】:
This answer 比这里的其他人都好。 实际上,下面的答案(可以说)比上一条评论中链接的最佳答案更清晰/实用:***.com/questions/10477281/…。 【参考方案1】:使用getInstance()
方法等的类属于singleton design pattern。
基本上,该特定类只会有一个实例,您可以通过getInstance()
获得它。
在这种情况下,LocationProvider
将永远只有一个实例,因为它是特定于设备的。您可以使用getInstance()
方法来使用共享实例,而不是创建它的新实例。在处理数据管理器和硬件接口之类的事情时,Java 中经常使用单例模式,但它不应该用于太多其他事情,因为它将您限制在单个实例中。
【讨论】:
【参考方案2】:方法getInstance()
被称为工厂方法。它用于创建单例类。这意味着只会创建该类的一个实例,而其他实例将获得该类的引用。
【讨论】:
这是不正确的。例如,Calendar.getInstance() == Calendar.getInstance()
是 false
。
Calendar.getInstance() == Calendar.getInstance() 返回值取决于 getInstance() 实现。如果 getInstance() 每次都返回相同的对象,上面的相等比较将返回 true【参考方案3】:
以下代码将为您提供纬度和经度。 getInstance() 将返回该特定类的实例。
Criteria myCriteria = new Criteria();
myCriteria.setCostAllowed(false);
LocationProvider myLocationProvider = LocationProvider.getInstance(myCriteria);
Location myLocation = myLocationProvider.getLocation(300);
latitude = myLocation.getQualifiedCoordinates().getLatitude();
longitude = myLocation.getQualifiedCoordinates().getLongitude();
【讨论】:
以上是关于请告诉我何时在 java 中使用 getInstance() 方法。 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章