2012-05-07 10 views
19

Cuándo usar el método getInstance() en java y cuál es el significado de getInstance (null)?dígame cuándo usar el método getInstance() en java.

locationProvider = LocationProvider.getInstance(null); 

¿alguien me puede decir el significado de la línea anterior?

+2

[Esta respuesta] (http://stackoverflow.com/a/3169644/1830334) es mejor que las otras aquí. – gwg

Respuesta

3

El siguiente código le dará la latitud y la longitud. getInstance() devolverá la instancia de esa clase en particular.

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(); 
29

Las clases que usan métodos getInstance() y similares son del singleton design pattern. Básicamente, solo habrá una instancia de esa clase en particular, y la obtendrá con getInstance().

En este caso, LocationProvider solo tendrá una instancia, ya que es específica del dispositivo. En lugar de crear instancias nuevas, puede usar la instancia compartida utilizando el método getInstance(). El patrón singleton se usa a menudo en Java cuando se trata de cosas como administradores de datos e interfaces de hardware, pero no debe usarse para mucho más, ya que lo restringe a una sola instancia.

3

Método getInstance() se llama método de fábrica. Se utiliza para la creación de clases singleton. Eso significa que solo se creará una instancia de esa clase y otros obtendrán referencia de esa clase.

+0

Esto es incorrecto. Por ejemplo, 'Calendar.getInstance() == Calendar.getInstance()' es 'false'. – gwg

Cuestiones relacionadas